php 防止表單重復(fù)提交兩種實(shí)現(xiàn)方法
php 防止表單重復(fù)提交
由于網(wǎng)絡(luò)原因,經(jīng)常出來點(diǎn)了提交按鈕,網(wǎng)頁沒有反應(yīng),而進(jìn)行再次點(diǎn)擊。這樣就導(dǎo)致后臺(tái)收到兩次提交,從而進(jìn)行兩次處理,本文章向大家介紹php 防止表單重復(fù)提交的幾種方法
1、前端解決
方法一:
可以通過前端來解決。當(dāng)用戶點(diǎn)了提交按鈕之后,先使用js進(jìn)行有效性判斷,沒問題后,將提交按鈕”禁用“掉。然后再提交!
方法二:
使用ajax提交表單。點(diǎn)了提交按鈕后,禁用提將按鈕,或者設(shè)置一個(gè)狀態(tài)值,將其設(shè)為1,表示正在提交。再提交時(shí)判斷如果正在提交,則不作處理。等ajax返回后,再恢復(fù)狀態(tài)。
2、后端解決
有時(shí)候前端無法完全解決問題,比如我用了jquery.validateEngine,沒有辦法設(shè)置狀態(tài)。所以考慮后端解決。
if(session("act_last_time") != ''){
if(floor( (time()-(int)session("act_last_time")) % 86400 / 60) <1 ){
$this->error("對(duì)不起,一分鐘之內(nèi)不能頻繁提交!", U('Wap/MyAct/list'), 5);
}
}else{
$t = (int)time();
echo $t;
$_SESSION("act_last_time", $t);
}
后端解決不怎么友好,但絕對(duì)有效。即對(duì)提交頻率進(jìn)行控制。我這里設(shè)置的是1分鐘。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
laravel框架學(xué)習(xí)筆記之組件化開發(fā)實(shí)現(xiàn)方法
這篇文章主要介紹了laravel框架學(xué)習(xí)筆記之組件化開發(fā)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了laravel框架組件化開發(fā)相關(guān)的實(shí)現(xiàn)步驟與操作注意事項(xiàng),需要的朋友可以參考下2020-02-02
php+ajax實(shí)現(xiàn)無刷新文件上傳功能(ajaxuploadfile)
這篇文章主要為大家詳細(xì)介紹了php結(jié)合ajaxuploadfile實(shí)現(xiàn)無刷新文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
使用Discuz關(guān)鍵詞服務(wù)器實(shí)現(xiàn)PHP中文分詞
這篇文章主要介紹了使用Discuz關(guān)鍵詞服務(wù)器實(shí)現(xiàn)PHP中文分詞的方法以及代碼實(shí)例,需要的朋友可以參考下2014-03-03
PHP中為什么使用file_get_contents("php://input")接收微信通知
微信用戶和公眾號(hào)產(chǎn)生交互的過程中,用戶的某些操作會(huì)使得微信服務(wù)器事件推送,通知到開發(fā)者中心設(shè)置的服務(wù)器地址(回調(diào)url),開發(fā)者可以獲取到該信息。PHP中為什么使用file_get_contents("php://input")來接收呢?為什么有些場(chǎng)景php://input接收不到?2023-07-07
PHP實(shí)現(xiàn)財(cái)務(wù)審核通過后返現(xiàn)金額到客戶的功能
有這么一個(gè)返現(xiàn)的系統(tǒng),當(dāng)前端客戶發(fā)起提現(xiàn)的時(shí)候,后端就要通過審核這筆返現(xiàn)訂單,才可以返現(xiàn)到客戶的賬號(hào)里。這篇文章主要介紹了PHP實(shí)現(xiàn)財(cái)務(wù)審核通過后返現(xiàn)金額到客戶 ,需要的朋友可以參考下2019-07-07
基于Discuz security.inc.php代碼的深入分析
本篇文章是對(duì)Discuz security.inc.php的代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

