gpt4 book ai didi

php - 按 f5 时避免在 php 中重新提交表单

转载 作者:IT王子 更新时间:2023-10-28 23:56:54 51 4
gpt4 key购买 nike

我的网站上有以下代码(使用 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。

header('Location: http://www.example.com/form.php');

在您的情况下,听起来您想重定向到您已经在的页面。如果要显示确认消息,请将 $_GET 参数附加到 URL。

希望对您有所帮助,

汤姆

关于php - 按 f5 时避免在 php 中重新提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722547/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com