由于網絡原因,經常出來點了提交按鈕,網頁沒有反應,而進行再次點擊。這樣就導致后臺收到兩次提交,從而進行兩次處理,本文章向大家介紹php 防止表單重復提交的幾種方法
1、前端解決
方法一:
可以通過前端來解決。當用戶點了提交按鈕之后,先使用js進行有效性判斷,沒問題后,將提交按鈕”禁用“掉。然后再提交!
方法二:
使用ajax提交表單。點了提交按鈕后,禁用提將按鈕,或者設置一個狀態值,將其設為1,表示正在提交。再提交時判斷如果正在提交,則不作處理。等ajax返回后,再恢復狀態。
2、后端解決
有時候前端無法完全解決問題,比如我用了jquery.validateEngine,沒有辦法設置狀態。所以考慮后端解決。
1
2
3
4
5
6
7
8
9
|
if (session( "act_last_time" ) != '' ){ if ( floor ( (time()-(int)session( "act_last_time" )) % 86400 / 60) <1 ){ $this ->error( "對不起,一分鐘之內不能頻繁提交!" , U( 'Wap/MyAct/list' ), 5); } } else { $t = (int)time(); echo $t ; $_SESSION ( "act_last_time" , $t ); } |
后端解決不怎么友好,但絕對有效。即對提交頻率進行控制。我這里設置的是1分鐘。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!