Более простой способ достичь желаемого - использовать перенаправление при отправке. После обработки запроса POST вы перенаправляете, возможно, даже на ту же страницу. Это общий шаблон, называемый «Redirect after POST» или POST / Redirect / GET .
Например:
<?php
if($_POST) {
// do something
// now redirect
header("Location: " . $_SERVER["REQUEST_URI"]);
exit;
}
?>
<html> ...
<form method="post" action=""> ... </form>
Установив действие "", оно будет отправлено самому себе, после чего блок кода if ($ _ POST) подтвердит значение true и обработает форму, а затем перенаправит ее обратно на себя.
Конечно, вы, вероятно, хотите перенаправить на другую страницу, на которой показан ответ «Ваша форма отправлена», или поместить форму на другую страницу, и ответом будет HTML-код этой страницы.
Преимущество этого метода в том, что когда вы нажимаете кнопку "Назад", он выполняет запрос GET, поэтому форма не отправляется повторно.
В Firefox он на самом деле извлекает представление из истории браузера, поэтому, когда пользователи просматривают веб-сайт и затем наносят ответный удар, вместо просмотра страницы «спасибо» они видят страницу формы.