Éviter l'insertion involontaire de données lors de l'actualisation de la page
Dans le développement d'applications Web, il est crucial d'empêcher l'insertion involontaire de données lorsque les utilisateurs actualisent une page après soumettre un formulaire. Une approche courante pour résoudre ce problème consiste à rediriger les utilisateurs vers une autre page après l'envoi du formulaire.
Considérez l'extrait de code suivant dans lequel un formulaire est utilisé pour insérer des données dans une base de données :
<?php if (isset($_POST['name'])) { // Operation on database, such as inserting $_POST['name'] into a table echo "Operation Done"; die(); // Die() is used to prevent further processing, which would otherwise cause the form to be resubmitted on page refresh. } ?> <form action='page.php' method='post' name="myForm"> <input type="text" maxlength="50" name="name" class="input400" /> <input type="submit" name="Submit" /> </form>
Lorsque le formulaire est soumis, les données sont insérées dans la base de données et le message « Opération terminée » s'affiche. Cependant, si un utilisateur actualise la page, le formulaire sera soumis à nouveau, entraînant la réinsertion des données.
Pour éviter ce problème, il est recommandé de rediriger l'utilisateur vers une autre page après la soumission du formulaire. Cela empêche le formulaire d'être soumis à nouveau lors de l'actualisation de la page :
<?php if (isset($_POST['name'])) { // Operation on database, such as inserting $_POST['name'] into a table // Set a success flash message (assuming you are using a framework). header('Location: /path/to/record'); // Redirects the user to a different page upon successful form submission. exit; // Die() is not necessary here since the header redirect will send the user away from the page. } ?> <form action='page.php' method='post' name="myForm"> <input type="text" maxlength="50" name="name" class="input400" /> <input type="submit" name="Submit" /> </form>
En redirigeant l'utilisateur vers une autre page après la soumission du formulaire, le risque d'insertion involontaire de données lors de l'actualisation de la page est éliminé.
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!