Maison  >  Article  >  développement back-end  >  Comment empêcher les soumissions de formulaires d'être répétées lors de l'actualisation ?

Comment empêcher les soumissions de formulaires d'être répétées lors de l'actualisation ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 13:57:02291parcourir

How to Prevent Form Submissions from Being Repeated on Refresh?

Prévenir les soumissions de formulaires redondantes lors de l'actualisation

Dans le développement d'applications Web, il n'est pas rare de rencontrer des situations dans lesquelles l'actualisation d'une page après la soumission d'un formulaire conduit à soumissions multiples involontaires. Ce comportement peut se produire lorsque le code côté serveur ne gère pas correctement le traitement de soumission du formulaire.

Considérez l'exemple suivant dans lequel un formulaire est destiné à insérer des données dans une base de données lors de la soumission :

<?php
if (isset($_POST['name'])) {
    // Database operation to insert $_POST['name']
    echo "Operation Done";
    die();
}
?>

<form action='page.php' method='post' name="myForm">
    <input type="text" maxlength="50" name="name" class="input400" />
    <input type="submit" name="Submit" />
</form>

Après avoir soumis le formulaire, les données sont insérées avec succès dans la base de données et le message « Opération terminée » s'affiche. Cependant, si la page est ensuite actualisée, la soumission du formulaire est répétée, ce qui entraîne la réinsertion des données.

Solution : Rediriger après une soumission réussie du formulaire

À éviter ce problème, il est essentiel de rediriger vers une autre page après avoir traité avec succès la soumission du formulaire. Cela garantit que lorsque la page est actualisée, c'est la nouvelle page qui est chargée, et non la même page de soumission de formulaire.

Exemple avec redirection :

<?php
if (isset($_POST['name'])) {
    // Database operation to insert $_POST['name']
    header('Location: /path/to/record');
    exit;
}
?>

En ajoutant la redirection d'en-tête, le code garantit qu'une fois l'opération de base de données terminée, une redirection se produit vers un nouveau chemin. Si l'utilisateur actualise la page, il sera dirigé vers le nouveau chemin au lieu de la page de soumission du formulaire.

Avantages de la redirection :

  • Empêche les soumissions redondantes : Lorsqu'un utilisateur actualise la page après la soumission, il ne soumet plus le formulaire à nouveau.
  • Expérience utilisateur claire : L'utilisateur voit une page différente une fois le formulaire terminé. soumis avec succès, fournissant une indication claire que l'opération a été terminée.
  • Facilité d'utilisation améliorée : Si l'utilisateur avait accidentellement actualisé la page après la soumission du formulaire, il n'aurait pas besoin de soumettre à nouveau le formulaire. formulaire manuellement, réduisant ainsi la frustration des utilisateurs.

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