登录判断

public function login(){
if (Request::instance()->isAjax()){
$name= Request::instance()->post('name');
$password = Request::instance()->post('password');
$result = Db::name('admin')->where(['name'=>$name])->find();
$inPWD=md5(md5($password));
if(empty($result)){
return ['code'=>-1,'msg'=>'用户不存在'];
}

//判断账户状态 0为锁定
if($result['status'] == 0){
if((time() - $result['last_time']) > 300){
//过了锁定时间 恢复正常状态
$count['status'] = 1;
Db::name('admin')->where(['name' => $name])->update($count);
}else{
return ['code'=>-1,'msg'=>'账号或密码错误超过3次,请5分钟之后登录!'];
}
}

if($result['password']==$inPWD) {
Db::name('admin')->where(['name' => $name])->update(['ip' => Request::instance()->ip(), 'last_time' => time()]);
session('admin', $result);
\session('last_time', time() + 1800);
return ['code' => 0, 'msg' => '登录成功!'];
}else{
if($result['count'] < 3){
// 错误小于三次 字段值增加
$count['count'] = $result['count']+1;
Db::name('admin')->where(['name' => $name])->update($count);
}else{
// 错误次数大于3时 属性恢复 清空 锁定
$count['count'] = 0;
$count['last_time'] = time();
$count['status'] = 0;
Db::name('admin')->where(['name' => $name])->update($count);
}
return ['code'=>-1,'msg'=>'密码错误'];
}
}
return view();
}


︿( ̄︶ ̄)︿?? 反正我是看懂了……

posted @ 2019-01-05 11:02  垖垏尐  阅读(138)  评论(0编辑  收藏  举报