首頁 web前端 js教程 怎樣用ajax實現彈窗登錄

怎樣用ajax實現彈窗登錄

Apr 02, 2018 am 11:42 AM
ajax 實現 登入

這次帶給大家怎樣用ajax實現彈窗登錄,用ajax實現彈窗登錄的注意事項有哪些,下面就是實戰案例,一起來看一下。

以下介紹如何實作AJAX彈窗登入。

在ECSHOP中的user.PHP中有處理使用者登入的請求。

/* 处理 ajax 的登录请求 */ 
elseif ($action == 'signin') 
{ 
 include_once('includes/cls_json.php'); 
 $json = new JSON; 
 $username = !empty($_POST['username']) ? json_str_iconv(trim($_POST['username'])) : ''; 
 $password = !empty($_POST['password']) ? trim($_POST['password']) : ''; 
 $captcha = !empty($_POST['captcha']) ? json_str_iconv(trim($_POST['captcha'])) : ''; 
 $result = array('error' => 0, 'content' => ''); 
 $captcha = intval($_CFG['captcha']); 
 if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0) 
 { 
  if (empty($captcha)) 
  { 
   $result['error'] = 1; 
   $result['content'] = $_LANG['invalid_captcha']; 
   die($json->encode($result)); 
  } 
  /* 检查验证码 */ 
  include_once('includes/cls_captcha.php'); 
  $validator = new captcha(); 
  $validator->session_word = 'captcha_login'; 
  if (!$validator->check_word($_POST['captcha'])) 
  { 
   $result['error'] = 1; 
   $result['content'] = $_LANG['invalid_captcha']; 
   die($json->encode($result)); 
  } 
 } 
 if ($user->login($username, $password)) 
 { 
  update_user_info(); //更新用户信息 
  recalculate_price(); // 重新计算购物车中的商品价格 
  $smarty->assign('user_info', get_user_info()); 
  $ucdata = empty($user->ucdata)? "" : $user->ucdata; 
  $result['ucdata'] = $ucdata; 
  $result['content'] = $smarty->fetch('library/member_info.lbi'); 
 } 
 else 
 { 
  $_SESSION['login_fail']++; 
  if ($_SESSION['login_fail'] > 2) 
  { 
   $smarty->assign('enabled_captcha', 1); 
   $result['html'] = $smarty->fetch('library/member_info.lbi'); 
  } 
  $result['error'] = 1; 
  $result['content'] = $_LANG['login_failure']; 
 } 
 die($json->encode($result)); 
}
登入後複製

把上面這段程式碼修改一下,刪除需要驗證碼的部分

改成

/* 处理 ajax弹窗登录请求 */ 
elseif ($action == 'ajax_login') 
{ 
 include_once('includes/cls_json.php'); 
 $json = new JSON; 
 $username = !empty($_POST['username']) ? json_str_iconv(trim($_POST['username'])) : ''; 
 $password = !empty($_POST['password']) ? trim($_POST['password']) : ''; 
 $result = array('error' => 0, 'content' => ''); 
 $captcha = intval($_CFG['captcha']); 
 if ($user->login($username, $password)) 
 { 
  update_user_info(); //更新用户信息 
  recalculate_price(); // 重新计算购物车中的商品价格 
  $smarty->assign('user_info', get_user_info()); 
  $ucdata = empty($user->ucdata)? "" : $user->ucdata; 
  $result['ucdata'] = $ucdata; 
  $result['content'] = $smarty->fetch('library/member_info.lbi'); 
 } 
 else 
 { 
  $result['error'] = 1; 
  $result['content'] = $_LANG['login_failure']; 
 } 
 die($json->encode($result)); 
}
登入後複製

// 不需要登录的操作或自己验证是否登录(如ajax处理)的act 
$not_login_arr = 
array('login','act_login','register','act_register','act_edit_password','get_password','send_pwd_email','password', 'signin', 'add_tag', 'collect', 'return_to_cart', 'logout', 'email_list', 'validate_email', 'send_hash_mail', 'order_query', 'is_registered', 'check_email','clear_history','qpassword_name', 'get_passwd_question', 'check_answer');
登入後複製

改成

// 不需要登录的操作或自己验证是否登录(如ajax处理)的act 
$not_login_arr = 
array('ajax_login','login','act_login','register','act_register','act_edit_password','get_password','send_pwd_email','password', 'signin', 'add_tag', 'collect', 'return_to_cart', 'logout', 'email_list', 'validate_email', 'send_hash_mail', 'order_query', 'is_registered', 'check_email','clear_history','qpassword_name', 'get_passwd_question', 'check_answer');
登入後複製

common.js檔案下,

在openLginp()方法裡,將newp.innerHTML的HTML程式碼修改下,在登入框標籤裡加個ajaxLoginSubmit()方法。

//生成层内内容 
 newp.innerHTML = '<form id="ajax_loginForm">用户名:<br><input type="text" name="username" id="ajax_username"/>密码:<br><input type="password" name="password" id="ajax_password"/><br><br><button type="button" onclick="ajaxLoginSubmit()">登录</button> <button type="button" onclick="closeLoginForm()">关闭</button></form>';
登入後複製

再自己寫兩個方法即可

function ajaxLoginSubmit(){ 
 var username = document.getElementById('ajax_username').value; 
 var password = document.getElementById('ajax_password').value; 
 Ajax.call('user.php?act=ajax_login','username='+username+'&password='+password,ajaxLoginResponse,'POST','JSON'); 
} 
function ajaxLoginResponse(result){ 
 if(result.error == 0){ 
  alert('登录成功'); 
 }else{ 
  alert('登录失败'); 
 } 
 return false; 
}
登入後複製

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

ajax三級連動圖文詳解(附程式碼)

Ajax的基礎與登入步驟詳解

以上是怎樣用ajax實現彈窗登錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

wallpaperengine登入別的號碼後下載別人的桌布怎麼辦 wallpaperengine登入別的號碼後下載別人的桌布怎麼辦 Mar 19, 2024 pm 02:00 PM

當你在自己電腦上登過別人steam帳號之後,剛好這個別人的帳號也有wallpaper軟體,切換回自己帳號之後steam就會自動下載別人帳號訂閱的桌布,使用者可以透過關閉steam雲端同步解決。 wallpaperengine登入別的號碼後下載別人的桌布怎麼辦1、登陸你自己的steam帳號,在設定裡面找到雲端同步,關閉steam雲端同步。 2.登陸你之前登陸的別人的steam帳號,打開wallpaper創意工坊,找到訂閱內容,然後取消全部訂閱。 (以後防止找不到壁紙,可以先收藏再取消訂閱)3、切換回自己的stea

小紅書怎麼登入以前的帳號?它換綁後原來號碼遺失了怎麼辦? 小紅書怎麼登入以前的帳號?它換綁後原來號碼遺失了怎麼辦? Mar 21, 2024 pm 09:41 PM

隨著社群媒體的快速發展,小紅書成為許多年輕人分享生活、探索新產品的熱門平台。在使用過程中,有時使用者可能會遇到登入先前帳號的困難。本文將詳細探討如何解決小紅書登入舊帳號的問題,以及如何應對更換綁定後可能遺失原帳號的情況。一、小紅書怎麼登入以前的帳號? 1.找回密碼登入如果長時間未登入小紅書,可能導致帳號被系統回收。為了恢復存取權限,你可以嘗試透過找回密碼的方式重新登入帳號。操作步驟如下:(1)開啟小紅書App或官網,點選「登入」按鈕。 (2)選擇「找回密碼」。 (3)輸入你註冊帳號時所使用的手機號碼

華為手機如何實現雙微信登入? 華為手機如何實現雙微信登入? Mar 24, 2024 am 11:27 AM

華為手機如何實現雙微信登入?隨著社群媒體的興起,微信已成為人們日常生活中不可或缺的溝通工具之一。然而,許多人可能會遇到一個問題:在同一部手機上同時登入多個微信帳號。對於華為手機用戶來說,實現雙微信登入並不困難,本文將介紹華為手機如何實現雙微信登入的方法。首先,華為手機自帶的EMUI系統提供了一個很方便的功能-應用程式雙開。透過應用程式雙開功能,用戶可以在手機上同

百度網盤網頁版怎麼進?百度網盤網頁版登入入口 百度網盤網頁版怎麼進?百度網盤網頁版登入入口 Mar 13, 2024 pm 04:58 PM

  百度網盤不僅能儲存各種軟體資源,還能分享給別人,支援多端同步,如果你的電腦沒有下載客戶端,可以選擇進入網頁版使用。那麼百度網盤網頁版要怎麼登入呢?下面就來看看詳細介紹。  百度網盤網頁版登入入口:https://pan.baidu.com(複製連結至瀏覽器開啟)  軟體介紹  1、分享  提供文件分享功能,使用者將文件整理,分享給需要的小夥伴。  2、雲端  不佔用太多內存,大多數檔案都保存在雲端,有效節省電腦空間。  3、相簿  支援雲相簿功能,將照片匯入到雲盤中,然後整理,方便大家查看。  

PHP程式設計指南:實作斐波那契數列的方法 PHP程式設計指南:實作斐波那契數列的方法 Mar 20, 2024 pm 04:54 PM

程式語言PHP是一種用於Web開發的強大工具,能夠支援多種不同的程式設計邏輯和演算法。其中,實作斐波那契數列是一個常見且經典的程式設計問題。在這篇文章中,將介紹如何使用PHP程式語言來實作斐波那契數列的方法,並附上具體的程式碼範例。斐波那契數列是一個數學上的序列,其定義如下:數列的第一個和第二個元素為1,從第三個元素開始,每個元素的值等於前兩個元素的和。數列的前幾元

谷歌瀏覽器無法登入帳號怎麼辦?谷歌瀏覽器帳號不能登入解決方法 谷歌瀏覽器無法登入帳號怎麼辦?谷歌瀏覽器帳號不能登入解決方法 Mar 13, 2024 pm 02:10 PM

  谷歌瀏覽器無法登入帳號怎麼辦?很多用戶在使用這款軟體的時候,某些功能需要用戶們登入谷歌帳號才可以使用,但是嘗試了很多次,都沒有登入成功,面對這個問題,不少用戶都不知道應該如何解決,那麼本期小編就來和各位分享解決方法,希望今日的軟體教程內容可以為大夥帶來幫助。  解決方法如下:  1、點選桌面一個瀏覽器,開啟之後看到這個樣子。  2、此時如果彈出登錄,點擊它,如看不到的點擊右上角。  3、點選登錄,然後輸入你的帳號,帳號不用輸入@之後的一節,點選下一步。  4、輸入密碼,看到這個提示,點選啟用

小紅書只記得帳號怎麼登入?只記得帳號怎麼找回來? 小紅書只記得帳號怎麼登入?只記得帳號怎麼找回來? Mar 23, 2024 pm 05:31 PM

小紅書如今已經融入了許多人的日常生活,其豐富的內容和便捷的操作方式讓使用者樂此不疲。有時候,我們可能會忘記帳號密碼,只記得帳號而無法登入確實讓人感到困擾。一、小紅書只記得帳號怎麼登入?當忘記密碼時,我們可以透過手機驗證碼的方式登入小紅書。具體操作如下:1.開啟小紅書App或網頁版小紅書;2.點選「登入」按鈕,選擇「帳號密碼登入」;3.點選「忘記密碼?」按鈕;4.輸入你的帳號,點選「下一步」;5.系統會發送驗證碼到你的手機,輸入驗證碼後點選「確定」;6.設定新的密碼並確認。你也可以透過第三方帳號(如

如何在華為手機上實現微信分身功能 如何在華為手機上實現微信分身功能 Mar 24, 2024 pm 06:03 PM

如何在華為手機上實現微信分身功能隨著社群軟體的普及和人們對隱私安全的日益重視,微信分身功能逐漸成為人們關注的焦點。微信分身功能可以幫助使用者在同一台手機上同時登入多個微信帳號,方便管理和使用。在華為手機上實現微信分身功能並不困難,只需要按照以下步驟操作即可。第一步:確保手機系統版本和微信版本符合要求首先,確保你的華為手機系統版本已更新至最新版本,以及微信App

See all articles