В скрипте после успешного завершения POST:
header('Location: http://'.$_SERVER['HTTP_HOST'].'/finalpage.php', TRUE, 303);
Обратите внимание, что это должен включать абсолютный URL, а не только /finalpage.php
; относительные URI в заголовке Location не разрешены HTTP RFC и не поддерживаются некоторыми браузерами. Кроме того, 303, строго говоря, более правильно, чем 302.
по умолчанию
Если вы хотите, чтобы редирект просто извлекал ту же страницу снова как GET, вы можете сделать:
header('Location: '.$_SERVER['PHP_SELF'], TRUE, 303);
Также:
action="<?php echo $_SERVER['PHP_SELF']; ?>"
небезопасен, потенциально может быть дырой в HTML-инъекции, ведущей к XSS. Все текстовые строки, выводимые в содержимое HTML или значения атрибутов, должны быть соответственно экранированы:
action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"