我设置的条件是
if(isset($_POST)){
//do some action
}
第一次检查条件时,它可以正常工作,但如果用户刷新页面,它会执行第二次操作。我该怎么检查?
答案 0 :(得分:0)
您可以在数据库中插入或更新后取消设置提交按钮,例如unset($ _ POST ['btn_submit']);
答案 1 :(得分:0)
要防止双重发布,请使用浏览器刷新,请考虑此解决方案。
答案 2 :(得分:0)
使用the Post-Redirect-Get pattern。
刷新只会重新加载步骤4中返回的页面,而不重复步骤2.
答案 3 :(得分:0)
通常,表单处理可以分为3个步骤:
完成重定向以避免在刷新时再次提交表单。
因此,在您的情况下,在处理之后,您可以再次将用户重定向回相同的表单。如果他刷新页面,则表单将不会再次提交,因为浏览器已重定向,最后一个操作是GET
请求,而不是POST
。
要在PHP中进行实际重定向,可以使用header
函数:
if(isset($_POST)) {
...
// redirect back to the form
header("Location: form.php");
}
答案 4 :(得分:0)
在操作成功完成后重定向页面可以解决刷新问题
if(isset($_POST))
{
// do some action
// redirect to same page so that values will not get posted again
header("location:samepage.php");
}