Maison  >  Article  >  interface Web  >  Résumé des méthodes pour empêcher les utilisateurs de soumettre des formulaires à plusieurs reprises_HTML/Xhtml_Production de pages Web

Résumé des méthodes pour empêcher les utilisateurs de soumettre des formulaires à plusieurs reprises_HTML/Xhtml_Production de pages Web

WBOY
WBOYoriginal
2016-05-16 16:36:401468parcourir

La soumission de formulaires en double est le problème le plus courant dans les applications Web multi-utilisateurs et cause beaucoup de problèmes. Il existe de nombreux scénarios de candidature qui rencontreront des problèmes de soumission en double, tels que :

Cliquez deux fois sur le bouton Soumettre. Cliquez sur le bouton Actualiser. Utilisez le bouton Précédent du navigateur pour répéter l'action précédente, ce qui entraîne des soumissions répétées du formulaire. Soumettez le formulaire à plusieurs reprises en utilisant l'historique du navigateur. Requêtes HTTP en double du navigateur.

Plusieurs façons d'éviter la soumission répétée de formulaires

 1. Désactivez le bouton de soumission . Utilisez Javascript pour désactiver le bouton d'envoi une fois le formulaire soumis. Cette approche empêche les utilisateurs impatients de cliquer plusieurs fois sur le bouton. Mais il y a un problème si le client désactive Javascript, cette méthode ne sera pas valide.

J'ai dit dans mon article précédent que l'utilisation de certains plug-ins Jquery fonctionnait bien.

 2.Mode Post/Redirection/Obtenir. La redirection de page après la soumission est ce que l'on appelle le modèle Post-Redirect-Get (PRG). En bref, lorsque l'utilisateur soumet le formulaire, vous effectuez une redirection côté client et accédez à la page d'informations sur la réussite de la soumission.

Cela peut éviter les soumissions répétées provoquées par l'utilisateur appuyant sur F5, et il n'y aura aucun avertissement concernant les soumissions répétées du formulaire du navigateur. Cela peut également éliminer les mêmes problèmes causés par l'appui sur les boutons avant et arrière du navigateur.

 3. Stockez un drapeau spécial dans la session. Lorsque la page du formulaire est demandée, une chaîne de caractères spéciale est générée, stockée dans la session et placée dans le champ masqué du formulaire. Lors de l'acceptation et du traitement des données du formulaire, vérifiez si la chaîne d'identification existe, supprimez-la immédiatement de la session, puis traitez les données normalement.

S'il s'avère qu'il n'y a pas de chaîne d'indicateur valide dans la soumission du formulaire, cela signifie que le formulaire a déjà été soumis et que cette soumission est ignorée.

Cela donne à votre application Web une protection XSRF plus avancée.

 4. Ajouter des contraintes dans la base de données. Ajoutez des contraintes uniques ou créez des index uniques dans la base de données pour éviter les données en double. Il s’agit du moyen le plus efficace d’éviter la soumission de données en double.

Ce qui précède est l'introduction de ces 4 méthodes. Si vous avez de meilleures solutions, veuillez nous le faire savoir. Cet article continuera à être mis à jour.

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