距开课0天0时0分-10014913秒
我只是一条咸鱼哈2017-08-29 22:16:14 0 2 2867
[PHP讨论组]举报回复话题 ↕
简单就好,希望能说说要用到什么的方法来做,给个思路,谢谢哈。
2
0
分享
逸先生 已被采纳 2017-08-30 12:47:162楼
$user = "xx"; $pass = "xx"; $waittime = 241231; //根据$user在数据库中查询出来的时间 $times = 0; //根据$user在数据库中查询出来的尝试次数 if ((time() - $waittime) > 0) { if (/*根据user和pass去数据库查询*/) { //账号和密码存在 //登陆成功 //数据库中 waittime = 0;times= 0; } else { //账号和密码不存在 //登陆失败 //数据库中 times= $times+1; if (($times + 1) == 3) { //数据库中 times= 0;waittime = time() + 30 * 60(当前时间+半小时); } } } else { //提示 还需等待$waittime - time() 秒 }
赞 +0添加回复
逸先生 2017-08-30 10:44:241楼
你所说的限制登录次数,是限制每天的登陆次数,还是说一个人登录以后,在线就不能再次登录?如果是限制一个人一天可以登陆5次。可以这么设计,在用户表中添加一个字段,login_times tinyint (1) ,每次登录时都判断该数值是否大于等于5,如果小于5,登录成功,次数加一,服务器使用定时任务,每天凌晨该数据清0
赞 +1添加回复
抱歉,我说的不是很清楚,我想问的是:假设一个用户登录了3次,每次密码都输入错误了,然后限制这个用户30分钟之后才能继续尝试登录。请问要用到什么方法来做,没什么思路╮(╯▽╰)╭
O(∩_∩)O谢谢了
还是通过字段来限制,用户表添加两个字段 times tinyint(1) waittime int(11) default 0;每次登陆的时候,1先根据该用户的登陆名来判断waittime的值是否为0,是0,可以登陆,继续判断密码什么的,不是0,提示他等待((waittime - time()) / 60) 分钟,2 如果waittime的值为0,判断登陆名加登陆密码,是否正确,正确,登陆成功,不正确,times加1,如果times = 3,那么,waittime = time()+ 30 * 60,登陆成功后,times=0,waittime=0
逸先生 已被采纳 2017-08-30 12:47:162楼
赞 +0添加回复
逸先生 2017-08-30 10:44:241楼
你所说的限制登录次数,是限制每天的登陆次数,还是说一个人登录以后,在线就不能再次登录?如果是限制一个人一天可以登陆5次。可以这么设计,在用户表中添加一个字段,login_times tinyint (1) ,每次登录时都判断该数值是否大于等于5,如果小于5,登录成功,次数加一,服务器使用定时任务,每天凌晨该数据清0
赞 +1添加回复