Maison >développement back-end >tutoriel php >Comment puis-je empêcher la soumission de plusieurs formulaires en PHP ?

Comment puis-je empêcher la soumission de plusieurs formulaires en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 21:27:03935parcourir

How Can I Prevent Multiple Form Submissions in PHP?

Empêcher les insertions multiples lors de la soumission d'un formulaire en PHP

Lors de la conception de formulaires, il est crucial d'empêcher les utilisateurs de soumettre accidentellement ou intentionnellement les mêmes données plusieurs fois. fois. Cela peut entraîner une incohérence des données et d’autres problèmes. En PHP, il existe plusieurs méthodes efficaces pour y parvenir :

1. Désactiver le bouton d'envoi du formulaire lors de la soumission

À l'aide de JavaScript, désactivez le bouton d'envoi du formulaire une fois le formulaire soumis. Cependant, ce n'est pas une solution infaillible, car les utilisateurs peuvent soumettre des formulaires sans cliquer sur le bouton et les utilisateurs avec JavaScript désactivé peuvent être concernés.

2. Tirez parti des sessions PHP pour suivre les heures de soumission

Établissez une variable de session ($_SESSION['posttimer']) qui enregistre l'horodatage actuel. Avant de traiter la soumission du formulaire, vérifiez l'existence de cette variable et vérifiez s'il existe un décalage horaire suffisant (par exemple 2 secondes) entre l'heure actuelle et l'horodatage de la session. Si l'intervalle est trop court, la soumission est considérée comme un doublon.

3. Incorporez des jetons uniques dans les formulaires

Générez un jeton unique dans chaque POST. Créez une variable de session pour ce jeton et intégrez-la dans le formulaire. Lorsque le formulaire est soumis, régénérez le jeton et comparez-le à celui stocké dans la session. S'ils ne correspondent pas, le formulaire a été soumis deux fois et devrait être considéré comme invalide.

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