首页 >社区问答列表 >请问下,怎么用PHP 做一个限制用户登录次数。

请问下,怎么用PHP 做一个限制用户登录次数。

简单就好,希望能说说要用到什么的方法来做,给个思路,谢谢哈。

  • 逸先生
  • 逸先生  已被采纳  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分钟之后才能继续尝试登录。请问要用到什么方法来做,没什么思路╮(╯▽╰)╭

    我只是一条咸鱼哈  作者 · 2017-08-30 11:33:06
    回复

    O(∩_∩)O谢谢了

    我只是一条咸鱼哈  作者 · 2017-08-30 13:56:00
    回复

    还是通过字段来限制,用户表添加两个字段 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:11:48
    回复