摘要:這篇文章主要介紹了php 防止表單重復(fù)提交兩種實(shí)現(xiàn)方法的相關(guān)資料,這里兩種實(shí)現(xiàn)方法一一做了詳細(xì)介紹。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)行有效性判斷,沒問題后,將提交按鈕”禁
這篇文章主要介紹了php 防止表單重復(fù)提交兩種實(shí)現(xiàn)方法的相關(guān)資料,這里兩種實(shí)現(xiàn)方法一一做了詳細(xì)介紹。
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分鐘。
更多關(guān)于php 防止表單重復(fù)提交兩種實(shí)現(xiàn)方法請(qǐng)關(guān)注PHP中文網(wǎng)(www.miracleart.cn)其它文章!