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!