Maison >développement back-end >tutoriel php >Comment empêcher l'envoi de plusieurs formulaires et garantir l'intégrité des données en PHP ?

Comment empêcher l'envoi de plusieurs formulaires et garantir l'intégrité des données en PHP ?

DDD
DDDoriginal
2024-10-21 21:25:03668parcourir

How to Prevent Multiple Form Submissions and Ensure Data Integrity in PHP?

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

Dans les soumissions de formulaires PHP, il n'est pas rare de rencontrer des situations dans lesquelles les utilisateurs peuvent accidentellement soumettre le formulaire plusieurs fois, ce qui entraîne des insertions en double dans la base de données. Il existe différentes approches pour résoudre ce problème, autres que la recherche de documents existants portant des titres et un contenu identiques. Cet article explore trois solutions fiables :

Désactiver le bouton de soumission du formulaire

L'utilisation de JavaScript pour désactiver le bouton de soumission du formulaire lors de la soumission est une solution possible. Cette approche présente cependant des limites importantes car elle n’est pas infaillible. Les utilisateurs peuvent contourner le bouton et soumettre des formulaires, et cela peut ne pas fonctionner efficacement avec JavaScript désactivé. Cette méthode n'est pas recommandée.

Variables de session PHP

En PHP, les variables de session peuvent être utilisées pour stocker un horodatage spécifique à la session ($ _SESSION['posttimer']) lors de la soumission du formulaire. En validant cette variable avant de traiter le formulaire et en la comparant avec l'heure actuelle du système, les doubles soumissions peuvent être efficacement filtrées. Une différence d'horodatage de plus de deux secondes, par exemple, indiquerait une soumission légitime.

Génération de jeton unique

La génération d'un jeton unique pour chaque requête POST est un autre outil fiable. méthode. Cela implique de définir une variable de session avec le jeton et de l'intégrer dans le formulaire. Lors des soumissions de formulaire ultérieures, le jeton est régénéré et une inadéquation entre le jeton soumis et le jeton de session stocké signifierait une double soumission et entraînerait le signalement du formulaire 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