iwebshop index.php,【已完结】浅析iwebshop的登录过程

在编辑器中打开simple.php,找到login_act方法,如下图所示:

//用户登录

function login_act()

{

$login_info = IFilter::act(IReq::get('login_info','post'));

$password = IReq::get('password','post');

$remember = IFilter::act(IReq::get('remember','post'));

$autoLogin = IFilter::act(IReq::get('autoLogin','post'));

$callback = IFilter::act(IReq::get('callback'),'text');

$message = '';

$password = md5($password);

if($login_info == '')

{

$message = '请填写用户名或者邮箱';

}

else if(!preg_match('|\S{6,32}|',$password))

{

$message = '密码格式不正确,请输入6-32个字符';

}

else

{

if($userRow = CheckRights::isValidUser($login_info,$password))

{

CheckRights::loginAfter($userRow);

//记住帐号

if($remember == 1)

{

ICookie::set('loginName',$login_info);

}

//自动登录

if($autoLogin == 1)

{

ICookie::set('autoLogin',$autoLogin);

}

//自定义跳转页面

if($callback && !strpos($callback,'reg') && !strpos($callback,'login'))

{

$this->redirect($callback);

}

else

{

$this->redirect('/ucenter/index');

}

}

else

{

//邮箱未验证

$userDB = new IModel('user as u,member as m');

$userRow= $userDB->getObj(" (u.email = '{$login_info}' or u.username = '{$login_info}') and password = '{$password}' ");

if($userRow)

{

$siteConfig = new Config('site_config');

if($userRow['status'] == 3)

{

if($siteConfig->reg_option == 1)

{

$message = "您的邮箱还未验证,请点击下面的链接发送您的邮箱验证邮件!";

$this->redirect('/site/success?message='.urlencode($message).'&email='.$userRow['email']);

}

else

{

$message = '您的账号已经被锁定';

}

}

}

else

{

$message = '用户名和密码不匹配';

}

}

}

//错误信息

if($message)

{

$this->message = $message;

$_GET['callback'] = $callback;

$this->redirect('login',false);

}

}这短短83行代码就是登录操作的逻辑部分,具体过程且听我慢慢分解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值