Maison  >  Questions et réponses  >  le corps du texte

Veuillez me dire comment utiliser PHP pour limiter le nombre de connexions utilisateur.

Simple, c'est bien. J'espère que vous pourrez me dire quelle méthode utiliser pour le faire et vous donner quelques idées. Merci.

我只是一条咸鱼哈我只是一条咸鱼哈2630 Il y a quelques jours3771

répondre à tous(2)je répondrai

  • 逸先生

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


    répondre
    0
  • 逸先生

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

    Quand vous parlez de limiter le nombre de connexions, voulez-vous dire limiter le nombre de connexions par jour, ou voulez-vous dire qu'une fois qu'une personne se connecte, elle ne peut pas se reconnecter lorsqu'elle est en ligne ? S'il est restreint, une personne peut se connecter 5 fois par jour. Cela peut être conçu comme ceci. Ajoutez un champ à la table utilisateur, login_times tinyint (1), chaque fois que vous vous connectez, il sera jugé si la valeur est supérieure ou égale à 5. Si elle est inférieure à 5, la valeur sera évaluée. la connexion est réussie et le nombre de fois est augmenté d'une. Le serveur utilise les tâches planifiées. Données effacées 0

    .

    répondre
    1
  • 我只是一条咸鱼哈

    Désolé, ce que j'ai dit n'était pas très clair. Ce que je veux demander, c'est : supposons qu'un utilisateur se connecte trois fois et entre un mot de passe erroné à chaque fois. L'utilisateur ne peut alors pas essayer de se connecter pendant 30 minutes. Puis-je vous demander quelle méthode vous devez utiliser pour le faire ? Je n'ai aucune idée╮(╯▽╰)╭

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

    O(∩_∩)OMerci

    我只是一条咸鱼哈 · 2017-08-30 13:56:00
    逸先生

    Toujours limité par les champs, ajoutez deux champs à la table utilisateur times tinyint(1) waittime int(11) default 0 ; chaque fois que vous vous connectez, 1 détermine d'abord si la valeur du temps d'attente est 0 en fonction du nom de connexion de l'utilisateur, qui est 0 ; , vous pouvez vous connecter, continuer à déterminer le mot de passe, s'il n'est pas 0, invitez-le à attendre ((waittime - time()) / 60) minutes, 2. Si la valeur du temps d'attente est 0, déterminez si le nom de connexion et le mot de passe sont corrects, correct, connexion réussie, incorrect, fois plus 1. Si times = 3, alors waittime = time()+ 30 * 60. Après une connexion réussie, times=0, waittime=0

    逸先生 · 2017-08-30 12:11:48
  • Annulerrépondre