AI编程助手
AI免费问答

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

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

# PHP
我只是一条咸鱼哈 我只是一条咸鱼哈 2863 天前 3969 次浏览

全部回复(2) 我要回复

  • 逸先生

    逸先生2017-08-30 12:47:16

    $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:24

    你所说的限制登录次数,是限制每天的登陆次数,还是说一个人登录以后,在线就不能再次登录?如果是限制一个人一天可以登陆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
  • 取消 回复 发送