я следующий код на моем сайте (с помощью PHP и Smarty), чтобы попытаться избежать форм повторной передачи, когда я ударил f5:избежать форм повторной передачи в PHP при нажатии 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, данные сообщения все еще там.
Любые идеи?
Великий ответ, PRG, безусловно, путь: http://en.wikipedia.org/wiki/Post/Redirect/Get –
мне нужен полный URL для заголовка Do? – wheresrhys
Просто попробовал, и это противоречит заголовку, установленному где-то еще в приложении. Я не писал все, поэтому не знаю, куда пойти, чтобы остановить его настройку. – wheresrhys