ECSHOP中实现ajax弹窗登录功能
发布时间:2020-12-15 23:01:52 所属栏目:百科 来源:网络整理
导读:在上篇文章给大家介绍了使用openSpeDiv方法实现Ecshop登录弹窗框效果,大家点击参考下 下面介绍如何实现AJAX弹窗登录。 在ECSHOP中的user.PHP中有处理用户登录的请求。 /* 处理 ajax 的登录请求 */ elseif ($action == 'signin') { include_once('includes/c
在上篇文章给大家介绍了使用openSpeDiv方法实现Ecshop登录弹窗框效果,大家点击参考下 下面介绍如何实现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,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','check_answer'); common.js文件下, 在openLginDiv()方法里,将newDiv.innerHTML的HTML代码修改下,在登录框标签里加个ajaxLoginSubmit()方法。 //生成层内内容 newDiv.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; } 以上所述是小编给大家介绍的ECSHOP中实现ajax弹窗登录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 正则表达式 – ASP.NET MVC4正则表达式模型验证属性不适用于
- Rails 3.2 的 Ajax 向导(非常好)
- JSONP跨域原理和jQuery.getJSON用法
- 3.读书笔记收获不止Oracle之 物理体系
- org.xml.sax.SAXParseException; lineNumber: 1; columnNum
- c# – RichTextBox保存“选择方向”
- Flex 4.5移动iOS问题,确定实际的屏幕/阶段分辨率
- SQLite学习笔记20150714-2
- Sencha Touch 2 快速入门系列(一)-- 建立第一个Sencha To
- 正则表达式 – Apache重写规则,可以使用或不使用尾部斜杠