Maison >développement back-end >tutoriel php >Comment le modèle Post-Redirect-Get (PRG) peut-il empêcher la resoumission d'un formulaire en PHP ?
Modèle Post-Redirect-Get (PRG) en PHP : protection contre la nouvelle soumission de formulaires
Lors de la conception d'applications Web, empêcher la nouvelle soumission de formulaires après le rechargement de la page ou les actions du bouton de retour, vous pouvez améliorer l'expérience utilisateur et maintenir l'intégrité des données. Le modèle Post-Redirect-Get (PRG) est une approche largement reconnue pour résoudre ce problème, mais trouver des implémentations PHP simples peut être difficile.
Voici un exemple simplifié qui illustre le modèle PRG en PHP :
<?php if ($_POST) { // Validate input if (/* Input is valid */) { // Execute code (such as database updates) here. // Redirect to this page. header("Location: {$_SERVER['REQUEST_URI']}", true, 303); exit(); } } ?> <html> <!-- Your HTML page with a form --> </html>
Dans cet exemple, lorsque le formulaire est soumis via POST, la saisie est validée. Si l'entrée est valide, le code tel que les mises à jour de la base de données est exécuté. Par la suite, le script redirige l'utilisateur vers la même page à l'aide de l'en-tête Location. Le code d'état 303 See Other indique que la demande doit être répétée via GET, empêchant ainsi la resoumission du formulaire.
En utilisant $_SERVER['REQUEST_URI'], cet exemple évite les problèmes potentiels avec PHP_SELF dans les systèmes et frameworks CMS. La fonction exit() est appelée pour empêcher l'exécution du code HTML sous la redirection.
Cette implémentation PRG offre une protection contre la resoumission du formulaire tout en minimisant la complexité du code. En utilisant ce modèle, vous pouvez améliorer la robustesse et l'expérience utilisateur de vos applications Web.
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!