Maison > Article > développement back-end > Introduction à la façon d'empêcher la soumission répétée de formulaires en PHP (exemple de code)
Ce que cet article vous apporte est une introduction à la méthode PHP pour empêcher la soumission répétée de formulaires (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Honteux de le dire, j'ai commis une simple erreur alors que je travaillais sur un projet il y a quelques jours. Lors de la soumission des formulaires dans le backend de l'entreprise, l'un a été utilisé par mes propres employés et l'autre a été rédigé par moi-même en HTML. Le formulaire a été soumis à plusieurs reprises sans vérification et le résultat a été une erreur. Notez-le et enregistrez-le pour vous en souvenir et ne le négligez jamais.
Solutions
En fait, il existe de nombreuses méthodes, juste quelques exemples simples.
Framework
De nombreux frameworks ont pour fonction d'empêcher les soumissions répétées tout le monde devrait le savoir, je n'entrerai donc pas dans les détails ici.
Front-end
Le principe est très simple Une fois que l'utilisateur clique sur soumettre, utilisez simplement JS pour griser le bouton de soumission.
Le backend
utilise également PHP pour la vérification, bien sûr il ne se limite pas aux types suivants
Cookie
L'utilisateur soumet le formulaire au backend, dans le cookie, faites une marque et les soumissions répétées dans le délai spécifié seront invalides. Mais cette méthode échouera si l'utilisateur désactive les cookies.
<?php if (isset($_COOKIE['formFlag'])) { exit('error'); } // 处理数据 // 30秒内重复提交无效 setcookie('formFlag', time(), time() + 30);
Lors 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, la comparaison supprime avec succès la valeur dans la session.
<?php if (!isset($_SESSION['formFlag']) || $_POST['formFlag'] != $_SESSION['formFlag']) { exit('error'); } // 处理数据 unset($_SESSION['formFlag']);
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!