【发布时间】:2010-04-16 01:55:08
【问题描述】:
将表单发布到同一个PHP页面时,如果页面被意外刷新而不是再次提交,正确的方法是什么?
这是我现在使用的:
$tmp = implode('',$_POST);
$myHash = md5($tmp);
if(isset($_SESSION["myHash"]) && $_SESSION["myHash"] == $myHash)
{
header("Location: index.php"); // page refreshed, send user somewhere else
die();
}
else
{
$_SESSION["myHash"] = $myHash;
}
// continue processing...
这个解决方案有什么问题吗?
更新:这个场景的一个例子是在注册表中插入一行。您只希望此操作执行一次。
【问题讨论】:
-
如果您不介意我问,您想通过检测 $_POST 与刷新来解决什么问题?
-
请参阅下面对 Mrozek 回答的评论。检查重复的 $_POST 值告诉我页面被意外重新提交。
标签: php forms post hash form-submit