user.php act login,ECSHOP中实现ajax弹窗登录功能

本文主要给大家介绍在ecshop中实现ajax弹窗登录功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下

在上篇文章给大家介绍了使用openSpep方法实现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, $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 = '

用户名:密码:登录 关闭';

再自己写两个方法即可

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;

}

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值