Heim  >  Fragen und Antworten  >  Hauptteil

Bitte erklären Sie mir, wie ich PHP verwenden kann, um die Anzahl der Benutzeranmeldungen zu begrenzen.

Einfach ist in Ordnung. Ich hoffe, Sie können mir sagen, welche Methode ich verwenden soll, und Ihnen einige Ideen geben.

我只是一条咸鱼哈我只是一条咸鱼哈2630 Tage vor3775

Antworte allen(2)Ich werde antworten

  • 逸先生

    逸先生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() 秒
    }


    Antwort
    0
  • 逸先生

    逸先生2017-08-30 10:44:24

    你所说的限制登录次数,是限制每天的登陆次数,还是说一个人登录以后,在线就不能再次登录?如果是限制一个人一天可以登陆5次。可以这么设计,在用户表中添加一个字段,login_times tinyint (1) ,每次登录时都判断该数值是否大于等于5,如果小于5,登录成功,次数加一,服务器使用定时任务,每天凌晨该数据清0

    Antwort
    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
  • StornierenAntwort