Dans le script a terminé quand un POST réussi:
header('Location: http://'.$_SERVER['HTTP_HOST'].'/finalpage.php', TRUE, 303);
Notez que ceci doit inclure une URL absolue, pas seulement /finalpage.php
; Les URI relatifs dans un en-tête Location ne sont pas autorisés par le RFC HTTP et ne sont pas supportés par certains navigateurs. Aussi 303 est à proprement parler plus correct que la valeur par défaut 302.
Si vous voulez que la redirection simplement chercher à nouveau la même page que GET vous pouvez faire:
header('Location: '.$_SERVER['PHP_SELF'], TRUE, 303);
aussi:
action="<?php echo $_SERVER['PHP_SELF']; ?>"
est non sécurisé, potentiellement un trou d'injection HTML menant à XSS. Toutes les chaînes de texte en sortie dans le contenu HTML ou les valeurs d'attribut doivent être échappées de manière appropriée:
action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"
Ceci n'aidera pas l'utilisateur, il enverra simplement le formulaire à une autre page que SELF. – Jakub