將表單發佈到相同的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 vs刷新來解決什麼問題? – 2010-04-16 01:59:16
請參閱下面對Mrozek的回答的評論。檢查重複的$ _POST值告訴我,該頁面意外重新提交。 – Dieseltime 2010-04-16 03:20:41