每次進入提交的頁面,給一個session,為了避免重復,session的key可以是隨機的。
創(chuàng)新互聯(lián)專注于渭南網(wǎng)站建設(shè)服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供渭南營銷型網(wǎng)站建設(shè),渭南網(wǎng)站制作、渭南網(wǎng)頁設(shè)計、渭南網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務,打造渭南網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供渭南網(wǎng)站排名全網(wǎng)營銷落地服務。
在表單填寫頁面
?php
session_start(); // 啟用session
$time = time();
$key = 'sess_' . $time; // 根據(jù)時間生成一個隨機的session key
$_SESSION[$key] = $time; // 設(shè)置session的值
?
!--{通過隱藏表單將 session 的 key傳遞到服務端處理}--
input type="hidden" name="session_key" value="?php echo $time;?" /
處理頁面
?php
session_start(); // 啟用session
$key = $_POST['session_key'];
if(!$key || $_SESSION[$key] != substr($key, 5)){
// 如果沒有傳 session_key 參數(shù)
// 或者 session_key 參數(shù)值截斷 sess_后的數(shù)字 與 session參數(shù)值不匹配
unset($_SESSION[$key]); // 刪除 session 值
// 然后考慮是否要提示錯誤,或者轉(zhuǎn)入另一個頁面
exit(); // 終止頁面代碼執(zhí)行
}
// 下面進行數(shù)據(jù)寫操作
// 數(shù)據(jù)操作完成后,刪除session
unset($_SESSION[$key]);
// 后續(xù)操作
?
$########################
一個頁面也是一樣的,我給你的只是一個思維,
具體如何實現(xiàn),你要根據(jù)自己的實際情況去處理
很多東西都不是通用的
另外,不管多少個頁面,必然包含兩個部分,一部分是表單填寫,一部分是數(shù)據(jù)處理,這個跟多少個頁面無關(guān)~~就看你是否能夠理解這段代碼的意義,如果不理解的話,嵌套進去也沒啥用,能夠理解的話,或許你能夠找出更適合自己的解決方案
親,你可以加驗證碼驗證啊!~~
第一次產(chǎn)生驗證碼,然后驗證完成后就將驗證碼更新掉,這樣他再提交驗證碼就錯誤了,驗證碼錯誤就不讓他提交,直接轉(zhuǎn)向就好了!~~
驗證碼是防止重復提交的一個簡單的方式,目前還是比較有效的!~~
而且tp生成驗證碼很簡單,驗證也很方便的!~~
具體可以參考文檔這里:
希望對你有幫助,如果有幫助,記得采納喲!~~
如果不想每條查詢一次,可以提前做一個統(tǒng)一查詢
$sql=mysql_query("select distinct Code from test ",$conn);
$sqlvalue=[];
while($row=mysql_fetch_array($sql)){
$sqlvalue[]=$row['Code'];
}
另外 ,可以在建表的時候設(shè)置unique index,來徹底避免插入重復記錄,如果沒過濾好插入重復記錄的時候,系統(tǒng)會直接報錯