Maison >développement back-end >Problème PHP >Comment empêcher le formulaire d'être soumis à plusieurs reprises en php

Comment empêcher le formulaire d'être soumis à plusieurs reprises en php

(*-*)浩
(*-*)浩original
2019-09-27 14:48:313043parcourir

Comment PHP empêche-t-il que le formulaire soit soumis à plusieurs reprises ? Du débutant à compétent)

L'utilisateur soumet le formulaire au backend et le marque dans le cookie Soumissions répétées dans les limites spécifiées. le temps sera invalide. Mais cette méthode échouera si l'utilisateur désactive les cookies. Comment empêcher le formulaire d'être soumis à plusieurs reprises en php

<?php
  
if (isset($_COOKIE[&#39;formFlag&#39;])) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
// 30秒内重复提交无效
setcookie(&#39;formFlag&#39;, time(), time() + 30);

SessionLors de l'affichage de la page du formulaire, un nombre aléatoire est généré et stocké dans la Session et dans le champ caché du formulaire. Lors de la première soumission, comparez et supprimez avec succès la valeur dans la session.

L'utilisation de la fonction Session de PHP peut également éviter la soumission répétée de formulaires. La session est enregistrée côté serveur. La variable Session peut être modifiée pendant l'exécution de PHP. La prochaine fois que vous accéderez à cette variable, vous obtiendrez la valeur nouvellement attribuée. Par conséquent, vous pouvez utiliser une variable Session pour enregistrer la valeur soumise par le. S'il ne correspond pas, il est considéré que c'est l'utilisateur qui soumet à plusieurs reprises.

<?php
  
if (!isset($_SESSION[&#39;formFlag&#39;]) || $_POST[&#39;formFlag&#39;] != $_SESSION[&#39;formFlag&#39;]) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
unset($_SESSION[&#39;formFlag&#39;]);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn