recherche

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

php - Vous ne pouvez pas soumettre plusieurs fois dans un délai fixe ?

Par exemple, si 5 balises sont générées en une minute, le message « Opérations fréquentes, veuillez entrer le code de vérification » s'affichera.

Comment dois-je y faire face ?

仅有的幸福仅有的幸福2762 Il y a quelques jours744

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

  • PHPz

    PHPz2017-05-27 17:44:53

    C'est très pratique à implémenter en utilisant Redis. Une clé est utilisée pour stocker le nombre de soumissions si la clé est count.
    Obtenez le compte de Redis à chaque fois que vous soumettez

    1. Si le compte est vide, définissez la valeur du compte sur 1, définissez le délai d'attente sur une minute et soumettez normalement

    2.  ;
    3. Si la valeur du compteur n'est pas vide et est supérieure ou égale à 5, un message d'erreur sera signalé « L'opération est fréquente, veuillez entrer le code de vérification »

    4.  ;
    5. Si la valeur de comptage n'est pas vide et inférieure à 5, elle sera soumise normalement et la valeur de comptage sera augmentée de un.

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-27 17:44:53

    Enregistrez le temps de génération de chaque tag
    Si la règle est que seulement 4 tags peuvent être générés en une minute, une erreur sera signalée pour le 5ème
    Il suffit de comparer le 1er des 4 plus récents avant d'ajouter le 5ème. le temps de génération de chaque fois, par rapport à l'heure actuelle, est supérieur à 60 secondes ? Sinon, une erreur sera signalée.

    répondre
    0
  • 怪我咯

    怪我咯2017-05-27 17:44:53

    Utilisez session pour enregistrer deux valeurs, l'une est le nombre de soumissions $count et l'autre est l'heure de soumission $time. ++$count==5 [Condition 1] est détecté à chaque fois qu'il est soumis. Si tel est le cas, time()-$time>=60 seconds [Condition 2] Si les deux conditions sont remplies, des opérations fréquentes seront demandées. seule la condition est remplie 1 alors $count=0;$time=time();

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-27 17:44:53

    Il est recommandé d'utiliser l'opération de cache Redis

    <?php
    try {
      $redis = new Redis(); // 创建实例
      $redis->connect(REDIS_HOST, REDIS_PORT, REDIS_TIMEOUT); // 连接
      $redis->ping(); // 确认连接已经成功
    } catch (Exception $e) {
      die('Can not connect Redis.');
    }
    
    $incrkey = 'TEST:用户:分钟'; // 每分钟缓存key
    $incrValue = $redis->incr($incrkey);
    if ($incrValue == 1) {
      // 设定缓存时间(键名,缓存时间[单位:秒])
      $redis->expire($incrkey, 60);
    } else if ($incrValue >= 5) {
      die('操作频繁,请输入验证码');
    }

    répondre
    0
  • Annulerrépondre