У меня есть следующий код на моем сайте (с использованием php и smarty), чтобы попытаться избежать повторной отправки формы, когда я нажал 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 по умолчанию является ложным, но изменяется на true после успешной отправки формы. Заголовки переменных smarty и desc используются в шаблоне для хранения содержимого формы там, где есть ошибка пользователя, и им нужно изменить то, что они ввели.
Если форма успешно отправлена, она устанавливает bln_added = true, поэтому второй бит кода должен не только очищать поля формы, но и пустые $_POST. Но если я нажму f5, данные сообщения все еще там.
Любые идеи?