Comment empêcher la resoumission d'un formulaire dans les pages PHP ?

Patricia Arquette
Libérer: 2024-11-03 11:11:29
original
774 Les gens l'ont consulté

How to Prevent Form Resubmission in PHP Pages?

Éviter la resoumission de formulaire dans les pages PHP

Lors de l'actualisation des pages PHP contenant une fonction d'insertion, vous pouvez rencontrer le problème de la resoumission de formulaire, qui peut conduire à l'insertion de données en double. Pour éviter cela, envisagez d'utiliser le modèle Post-Redirect-Get (PRG).

Modèle PRG

Le modèle PRG implique :

  1. Accepter une demande POST : Recevez les données du formulaire soumis.
  2. Traitement des données : Validez, insérez ou effectuez toutes les actions nécessaires.
  3. Émettre une réponse de redirection : Rediriger l'utilisateur vers une nouvelle URL.
  4. Accepter une requête GET : L'utilisateur clique sur le lien actualisé et fait une nouvelle demande.
  5. Émission d'une réponse 200 : Affichez la page avec toutes les données nécessaires.

Exemple

Par exemple, supposons que vous Nous créons une page sur laquelle les utilisateurs peuvent ajouter des notes. Au lieu d'utiliser une fonction d'insertion dans la même page, vous pouvez implémenter le modèle PRG comme suit :

  • Page 1 (add_note.php) : Afficher le formulaire.
  • Page 2 (process_note.php) : Acceptez la demande POST et traitez la soumission de la note.
  • Page 3 (view_notes.php) : Acceptez le GET demander et afficher les notes mises à jour.

Gestion de l'affichage des données du formulaire

Si vous devez afficher les données du formulaire soumis après le traitement, vous pouvez inclure un identifiant dans la chaîne de requête de l’URL de redirection. Par exemple, votre réponse de redirection depuis process_note.php pourrait être :

<code class="php">header("Location: view_notes.php?note_id=$new_note_id");</code>
Copier après la connexion

Dans view_notes.php, vous pouvez ensuite utiliser le note_id de la chaîne de requête pour récupérer et afficher la note nouvellement insérée.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal