我在网站上使用了以下代码(使用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为false,但在表单成功提交后会变为true。smarty变量“title”和“desc”用于模板中,以便在出现用户错误并需要更改输入内容的情况下保留表单内容。
如果表单成功提交,则将bln_added设置为true,因此第二段代码不仅应清除表单字段,还应清空$_POST。但是,如果我按f5,则post数据仍然存在。
有什么想法吗?