美文网首页
三次登陆锁定TP

三次登陆锁定TP

作者: 奔跑吧笨笨 | 来源:发表于2017-09-15 14:20 被阅读0次

根据业务需求!提高网站的安全性,用户一天之内,密码错误三次,这今天账户锁定,次日自动解冻!
我的博客 

-- ----------------------------

-- Table structure for user

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`u_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员管理 id',

`u_name` varchar(30) DEFAULT NULL COMMENT '用户姓名',

`username` varchar(30) DEFAULT NULL COMMENT '用户名',

`password` varchar(30) DEFAULT NULL COMMENT '会员密码',

`price` decimal(10,0) DEFAULT NULL COMMENT '余额',

`add_time` int(11) DEFAULT NULL COMMENT '创建时间',

`log_num` int(11) DEFAULT '0' COMMENT '步长',

`last_time` int(11) DEFAULT NULL,

PRIMARY KEY (`u_id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='会员管理';

以上表名,比以往的user表多两个字段,

1.记录时间,上次登陆时间,

2.步长 记录登陆错误次数

思路:

1.判断 验证  用户名

2.如果时间不是当天 并且  步长大于0  那么步长归0

3.如果步长大于3,锁定用户

4.判断密码     a.登陆成功 步长重置   b.登陆失败 步长+1  时间记录

简单的需求思路 下面code

//管理员登陆 限制三次

public function doLogin(){

//接受前台提交的用户名 密码

$data = I('post.');

$model = M("admin");

//查询当前用户信息

$reg = $model->where('username = "'.$data['username'].'"')->find();

if(!$reg){

$this->error("账户不存在",U('Admin/login'));

}

//1最后登陆时间不是当天,并且错误次数大于0 那么让他的步张=0

if(date("Ymd",$reg['last_time']) != date("Ymd") && $reg['log_num']>0){

$reg['log_num'] = 0;

}

//2判断步长大于等于3 账户 锁定账户

if($reg['log_num']>=3){

$this->error("账户被锁定了,明天再来吧",U('Admin/login'));

}

//3判断密码是否正确 ->登陆成功步长重置

if($data['pwd'] == $reg['password']){ //登陆成功

session("user",$reg);

if($reg['log_num']>0){

$model->where('a_id ='.$reg['a_id'])->save(array('log_num'=>0));

}

$this->success("登陆成功",U('Index/index'));

}else{ //登陆失败

$num = $reg['log_num']+1;

$time_num = array('log_num'=>$num,'last_time'=>time());

$model->where('a_id ='.$reg['a_id'])->save($time_num);

//判断还能登陆几次

$log_num = 2 - $reg['log_num'];

$str = "密码错误,还能登".$log_num."次";

//错误提示 判断是否锁定

if($log_num <=0) $str = "账户被锁定";

$this->error($str);

}

}

相关文章

  • 三次登陆锁定TP

    根据业务需求!提高网站的安全性,用户一天之内,密码错误三次,这今天账户锁定,次日自动解冻!我的博客 -- ----...

  • python自学之路:模拟用户登陆

    python学习:模拟用户登陆1、输入帐号密码进行登录;2、用户信息保存着文件内;3、用户密码输入错误三次后锁定;...

  • 2017.9.26学习总结

    大作业在做用户登陆的时候,先是只设置了超过三次密码错误,系统锁定,不得再进行操作,但是忽略了用户名,接着设置了用...

  • python 密码验证

    题目描述: (1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入。用代替密码;或者最新输入...

  • ORA-28000: the account is locked

    Oracle被锁定 解除锁定: 查看登陆次数: 注:dba_profiles 是系统配置集合视图(VIEW)文件。...

  • 【AJAX】【ThinkPHP】使用jQuery的$.post(

    在TP框架下使用AJAX验证登陆后台 前台页面 帐号: 密码: 验证码: JS var...

  • 骚气的laravel登陆验证

    laravel被称为是艺术家 好吧。。。真的的体会到了。。 分析一波用户登陆操作,以前用tp框架登陆都的post提...

  • 文章又被锁定了

    昨天,发的文章又被锁定了,来简书一年多的时间,文章就被锁定了三次,被锁定的文章有《运动,让你活力十足》、《大军之后...

  • Ubuntu常用命令

    开启 / 锁定 / 解锁 root 用户 开启 root 用户登陆 之后会提示要输入root用户的密码,连续输入两...

  • oa竟然登陆不上了

    在手机上试了多次登陆失败,而直到在电脑上登陆,才发现原来是已被锁定。真是气,我怎么能把这个密码给忘了呢?再说,我为...

网友评论

      本文标题:三次登陆锁定TP

      本文链接:https://www.haomeiwen.com/subject/kyyssxtx.html