本文章介紹了關於如何利用cookie來防止用戶重復提交相同的數據的解決辦法,
原理是
如果數據通過了上邊的兩次驗證,說明數據是合法有效的數據。這時候我們把提交的數據串接為一個字符串,並用MD5加密後得到一個MD5的值,接著我們把這個值通過Cookie放進客戶端,當用戶下一次提交表單的時候我們就重新操作這一步,並且讀出Cookie中的MD5值,進行比較,如果相同就可斷定用戶提交兩次提交的表單是相同的,否則替換這個Cookie!
代碼如下
復制代碼
<?php
//……
$lasthash = $HTTP_COOKIE_VARS["lasthash"]; //讀取上一次設置的Cookie值
if(count($HTTP_POST_VARS)) {
$long = "";
while(list($key,$value)=each($HTTP_POST_VARS))$long.=$value;
$hash = md5($long);
setcookie("lasthash",$hash,time()+60*60*24*30); //重新設置cookie
}
if($lasthash!=$hash) {
// 如果兩次的MD5值不一樣就對數據進行進一步操作
}
else {
//如果兩次MD5的值相同,告知用戶提交失敗
}
//……
?>