Как вы заметили, будут ли значения формы после нажатия кнопки «Назад» зависеть от браузера.Насколько мне известно, стандартное решение состоит в том, чтобы не иметь отдельной страницы для сообщения об ошибке, а вместо этого ответить страницей, содержащей ту же форму, предварительно заполненную значениями, введенными пользователем (и предпочтительно с указаниемкакие поля необходимо заполнить).
Например: форма имеет значение /form.php
и выглядит следующим образом:
<form action="/form.php" method="POST">
<input type="text" name="foo" />
<input type="submit" value="Submit" />
</form>
In /form.php
(псевдокод; Iпочти никогда не кодирую PHP):
if (this is a GET request) {
echo the form;
}
else (if this is a POST request) {
if (field values are correct) {
processValues(...);
redirectToConfirmationPage();
}
else {
echo "<form action='/form.php' method='POST'>";
echo " <input type='text' name='foo' value='$theValueTheUserEntered'/>";
echo " <span class='error'>Field is incorrect or empty</span>";
echo " <input type='submit' value='Submit' />";
echo "</form>";
}
}