php防止表單重復(fù)提交實例講解
說來慚愧,前幾天做項目的時候,出現(xiàn)個低級錯誤。在公司后臺做表單提交,一是自己員工用,二是 html 自己來寫的,沒有驗證表單重復(fù)提交,結(jié)果出錯了。寫出來記錄下以便提醒自己,時刻不能疏忽。
解決方法
其實方法有很多種,只舉例幾個簡單的來說說。
框架
很多框架都有防止重復(fù)提交的功能,大家應(yīng)該都有了解,這里不再贅述。
前端
原理很簡單,用戶點擊提交之后,使用 JS 將提交按鈕置灰即可。
后端
也就是使用 PHP 進行驗證,當(dāng)然不局限以下幾種
Cookie
用戶提交表單到后端,在 Cookie 中做標記,指定時間內(nèi)重復(fù)提交無效。但是用戶禁用 Cookie 這個方法就失效了。
<?php
if (isset($_COOKIE['formFlag'])) {
exit('error');
}
// 處理數(shù)據(jù)
// 30秒內(nèi)重復(fù)提交無效
setcookie('formFlag', time(), time() + 30);
Session
展示表單頁面的時候,生成隨機數(shù),同時存儲在 Session 中以及表單隱藏域中。第一次提交的時候,對比成功刪除 Session 中的值。
<?php
if (!isset($_SESSION['formFlag']) || $_POST['formFlag'] != $_SESSION['formFlag']) {
exit('error');
}
// 處理數(shù)據(jù)
unset($_SESSION['formFlag']);
上面就是本次介紹PHP防止重復(fù)提交表單的全部內(nèi)容,感謝大家對腳本之家的支持。
相關(guān)文章
php 實現(xiàn)301重定向跳轉(zhuǎn)實例代碼
本文主要介紹php 實現(xiàn)301重定向跳轉(zhuǎn),通過實例代碼讓大家更好的理解重定向的方法,有需要的小伙伴可以參考下2016-07-07
Thinkphp通過一個入口文件如何區(qū)分移動端和PC端
這篇文章主要介紹了Thinkphp通過一個入口文件區(qū)分移動端和PC端的方法,需要的的朋友參考下吧2017-04-04
使用laravel和ECharts實現(xiàn)折線圖效果的例子
今天小編就為大家分享一篇使用laravel和ECharts實現(xiàn)折線圖效果的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
PHP執(zhí)行SQL文件并將SQL文件導(dǎo)入到數(shù)據(jù)庫
今天給大家介紹一下,如何利用php自動執(zhí)行.sql文件。其實很簡單,就是獲取sql文件中的內(nèi)容,然后將每一句sql語句一次執(zhí)行就行啦。需要的朋友可以參考下2015-09-09

