[php] post重複傳送

弄了幾小時...

無法接受為什麼
unset($_POST)
還是無法消除POST內容

最後靠別人那偷來的程式碼搞定QQ


< ? php
session_start();
/**
* 检查表单是否被重复提交
* 相同内容的表单在设定时间内只能提交1次
* @param int $iTimeOffset
* @return bool
*/
function checkFormSubmit($iTimeOffset=60){
// 取得表单的标识
$idForm = md5(serialize($_POST));
// 是否需要表单提交检察
$iFormCheck = true;
if (isset($_SESSION['formSubmitCheck'])){
// 删除过期的表单标识
foreach (array_keys($_SESSION['formSubmitCheck']) as $val){
if (time() > $val){
unset($_SESSION['formSubmitCheck'][$val]);
}
}
}else {
$_SESSION['formSubmitCheck'] = array();
$iFormCheck = false;
}
if ($iFormCheck == true){
// 检查是否有重复标识的提交记录
foreach ($_SESSION['formSubmitCheck'] as $val){
if ($val == $idForm){
return false;
}
}
}
// 保存表单标识
$_SESSION['formSubmitCheck'][(time()+$iTimeOffset)] = $idForm;
return true;
}

if (count($_POST) > 0){
if (checkFormSubmit()===true && ($_POST["name"]) != "" ){
$link_ID = mysql_connect("localhost","root","1234");
mysql_select_db("myweb");
$da=date("Y-m-d H:i:s"); //time function
$str = "insert into message (name,content,time)
values ('".$_POST["name"]."','".$_POST["content"]."','".$da."')";
mysql_query($str,$link_ID);
mysql_close($link_ID);
}else {
echo '表单重复提交';
}
}
?>

留言

這個網誌中的熱門文章

a005: Eva 的回家作業