连续输入密码错误3次,第二天才能登录
2016-10-24 20:06
225 查看
登录安全性 一天内连续输入密码错误3次,第二天才能登录(过了当天凌晨24点)
下面我们先在数据库中建立一个试验表,id,用户名username,密码pwd,次数num,时间time(date);
这个功能主要在数据库中分3中情况判断
1:解锁时间到了,清除数据库以前的记录数,次数值还原0
2:在解锁时间内,但是不良记录已经达到3次,不能登
3:在解锁时间内,并且不良记录未满3次,可以登录;
前面登录表单直接跳转至下方法:
public function 方法(){
$admin=$_POST['username'];
$password=$_POST['pwd'];
//接收值
//echo$admin,$password;
$model=M('表名');
$info=$model->where("username='$admin'")->find();
if($info){
//获取当前时间
$now=date("Y-m-d");
//以下是试验测试
// $now=date("Y-m-d",strtotime("-1day"));
// echo"昨天:",date("Y-m-d",strtotime("-1 day")), "
"; die;
// echo"".strtotime($info['time'])."";die;
//当前“时间戳”减去数据库里的“时间戳”
$cha=strtotime($now)-strtotime($info['time']);
//echo$cha;die;
//当已经”解锁“时
if($cha>=86400){
//解锁时间如果到了,清除以前的记录数,还原0
if($info['num']!='0'){
$data['num']='0';
$arr=$model->where("username='$admin'")->save($data);
}else{
$arr=1;
}
if($arr){
//如果密码争取则显示成功跳转页面
if($info['pwd']==$password){
$this->success("登陆成功!","返回路径");
}else{
//如果密码错了则找到对应的用户名
$info1=$model->where("username='$admin'")->find();
$data['time']=date("Y-m-d");
//使数据库里面的”num+1“
$data['num']=$info1['num']+1;
$times=3-$data['num'];
$model->where("username='$admin'")->save($data);
if($times>0){
$this->error("密码错误!你还剩".$times."次机会");
}
die;
}
}
}
//在解锁时间内,但是不良记录已经达到3次,也是不可以登录的;
if($cha<86400 &&$info['num']==3){
$this->error("你的账号已锁定,请明天登录!");
die;
}
//在解锁时间内,并且不良记录未满3次,可以登录;
if($cha<86400 &&$info['num']<3){
if($info['pwd']==$password){
$this->success("登陆成功!","返回路径");
}else{
//如果密码错了则找到对应的用户名
$info1=$model->where("username='$admin'")->find();
$data['time']=date("Y-m-d");
//使数据库里面的”num+1“
$data['num']=$info1['num']+1;
$times=3-$data['num'];
$model->where("username='$admin'")->save($data);
if($times>0){
$this->error("密码错误!你还剩".$times."次机会");
}else{
$this->error("密码错误次数已达3次,账号即将锁定!");
}
}
}
}else{
echo "用户名错误!";
下面我们先在数据库中建立一个试验表,id,用户名username,密码pwd,次数num,时间time(date);
这个功能主要在数据库中分3中情况判断
1:解锁时间到了,清除数据库以前的记录数,次数值还原0
2:在解锁时间内,但是不良记录已经达到3次,不能登
3:在解锁时间内,并且不良记录未满3次,可以登录;
前面登录表单直接跳转至下方法:
public function 方法(){
$admin=$_POST['username'];
$password=$_POST['pwd'];
//接收值
//echo$admin,$password;
$model=M('表名');
$info=$model->where("username='$admin'")->find();
if($info){
//获取当前时间
$now=date("Y-m-d");
//以下是试验测试
// $now=date("Y-m-d",strtotime("-1day"));
// echo"昨天:",date("Y-m-d",strtotime("-1 day")), "
"; die;
// echo"".strtotime($info['time'])."";die;
//当前“时间戳”减去数据库里的“时间戳”
$cha=strtotime($now)-strtotime($info['time']);
//echo$cha;die;
//当已经”解锁“时
if($cha>=86400){
//解锁时间如果到了,清除以前的记录数,还原0
if($info['num']!='0'){
$data['num']='0';
$arr=$model->where("username='$admin'")->save($data);
}else{
$arr=1;
}
if($arr){
//如果密码争取则显示成功跳转页面
if($info['pwd']==$password){
$this->success("登陆成功!","返回路径");
}else{
//如果密码错了则找到对应的用户名
$info1=$model->where("username='$admin'")->find();
$data['time']=date("Y-m-d");
//使数据库里面的”num+1“
$data['num']=$info1['num']+1;
$times=3-$data['num'];
$model->where("username='$admin'")->save($data);
if($times>0){
$this->error("密码错误!你还剩".$times."次机会");
}
die;
}
}
}
//在解锁时间内,但是不良记录已经达到3次,也是不可以登录的;
if($cha<86400 &&$info['num']==3){
$this->error("你的账号已锁定,请明天登录!");
die;
}
//在解锁时间内,并且不良记录未满3次,可以登录;
if($cha<86400 &&$info['num']<3){
if($info['pwd']==$password){
$this->success("登陆成功!","返回路径");
}else{
//如果密码错了则找到对应的用户名
$info1=$model->where("username='$admin'")->find();
$data['time']=date("Y-m-d");
//使数据库里面的”num+1“
$data['num']=$info1['num']+1;
$times=3-$data['num'];
$model->where("username='$admin'")->save($data);
if($times>0){
$this->error("密码错误!你还剩".$times."次机会");
}else{
$this->error("密码错误次数已达3次,账号即将锁定!");
}
}
}
}else{
echo "用户名错误!";
相关文章推荐
- 安全登录一天内连续输入密码错误3次,第二天才能登录
- 连续输入密码错误3次,第二天才能登录
- 登录安全性 一天内连续输入密码错误3次,第二天才能登录(过了当天凌晨24点),实现原理
- 登录安全性 一天内连续输入密码错误3次,第二天才能登录(过了当天凌晨24点),实现原理
- 连续输入密码错误3次,第二天才能登录
- 连续输入密码错误3次,第二天才能登录
- 连续输入密码错误3次,第二天才能登录
- 练习:用户登录,如连续三次输入错误,则锁定,之后不能再登录。
- 一开机未通过输入密码登录,就出现用户名或密码错误??
- 【错误笔记】Ubuntu 12.04 输入密码后又返回登录界面的问题
- 编写代码实现,模拟用户登录情景,并且只能登录三次。 只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
- D-Link登录时密码错误输入三次而无法登录问题的处理
- 密码错误3次,30分钟内无法登录源码
- 编写一个jsp程序,实现用户登录,当用户输入的用户或密码错误时,将页面重定向到错误提示页,并在该页面显示30秒后 自动回到用户登录界面
- 模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果密码三次均错误,则退出程序。
- 一个登录窗体的完整范例,包括登录,密码更改,输入错误三次退出
- 登录程序(输入错误十五秒后才能再次输入)
- ubuntu输入了正确的用户名密码但是无法登录(环境变量设置错误所以不能登录系统)
- 实现用户名密码登陆,输入错误3次后锁定用户