Je le code suivant sur mon site (en utilisant PHP et Smarty) pour essayer d'éviter une forme Resoumission quand je frappe f5:Éviter forme soumettre à nouveau en php lorsque vous appuyez sur f5
if ($this->bln_added == false) {
if (isset($_POST['submit'])) {
$this->obj_site->obj_smarty->assign('title', $_POST['tas_heading']);
$this->obj_site->obj_smarty->assign('desc', $_POST['tas_description']);
}
} else {
$this->obj_site->obj_smarty->assign('title', '');
$this->obj_site->obj_smarty->assign('desc', '');
unset($_POST);
}
bln_added est faux par défaut, mais devient true une fois le formulaire envoyé avec succès. Le titre et la descente des variables smarty sont utilisés dans le modèle pour conserver le contenu du formulaire là où il y a une erreur de l'utilisateur et ils doivent changer ce qu'ils ont entré.
Si le formulaire est soumis avec succès, il définit bln_added = true, donc le deuxième bit de code doit non seulement effacer les champs de formulaire, mais aussi vide $ _POST. Mais si j'appuie sur f5, les données postales sont toujours là.
Des idées?
Grande réponse, PRG est certainement la voie à suivre: http://en.wikipedia.org/wiki/Post/Redirect/Get –
Ai-je besoin de l'URL complète pour l'en-tête? – wheresrhys
Juste essayé et il est en conflit avec un jeu d'en-tête ailleurs dans l'application. Je n'ai pas tout écrit, je n'ai donc aucune idée d'où aller pour arrêter le réglage. – wheresrhys