成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP中怎么預(yù)防表單重復(fù)提交

本篇文章給大家分享的是有關(guān)PHP中怎么預(yù)防表單重復(fù)提交,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

10年積累的做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有汶上免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.使用客戶端JS腳本
提到客戶端腳本,經(jīng)常使用的是JavaScript進(jìn)行常規(guī)輸入驗(yàn)證。

< form method="post" name="register" action="test.php" enctype="multipart/form-data">   < input name="text" type="text" id="text" />< input name="cont" value="提交" type="button" onClick="document.register.cont.value='正在提交,請(qǐng)等待...';  document.register.cont.disabled=true;document.the_form.submit();"> < /form>
  • 深入剖析PHP變量的具體使用方法

  • PHP類Snoopy的特點(diǎn)分析

  • 詳細(xì)解讀PHP $_FILES數(shù)組的內(nèi)容

  • PHP APC的安裝與高級(jí)使用

  • PHP表單數(shù)組的具體使用方法介紹

當(dāng)用戶單擊“提交”按鈕后,該按鈕將變?yōu)榛疑豢捎脿顟B(tài)。

上面的例子中使用OnClick事件檢測(cè)用戶的提交狀態(tài),如果單擊了“提交”按鈕,該按鈕立即置為失效狀態(tài),用戶不能單擊按鈕再次提交。

還有一個(gè)方法,也是利用JavaScript的功能,但是使用的是OnSubmit()方法,如果已經(jīng)提交過一次表單,將立即彈出對(duì)話框,代碼如下:

< input type="hidden" name="originator" value="<?=$code?>"> 在接收頁面的PHP代碼如下:  < ?phpsession_start();if(isset($_POST['originator'])) {  if($_POST['originator'] == $_SESSION['code']){// 處理該表單的語句,省略  }else{  echo &lsquo;請(qǐng)不要刷新本頁面或重復(fù)提交表單!&rsquo;;  }  }?>


在上例中,如果用戶已經(jīng)單擊“提交”按鈕,該腳本會(huì)自動(dòng)記錄當(dāng)前的狀態(tài),并將submitcount變量自加
1,當(dāng)用戶試圖再次提交時(shí),腳本判斷submitcount變量值非零,提示用戶已經(jīng)提交,從而避免重復(fù)提交表單。

2.使用Cookie處理
使用Cookie記錄表單提交的狀態(tài),根據(jù)其狀態(tài)可以檢查是否已經(jīng)提交表單,請(qǐng)見下面的代碼:

< ?php  if(isset($_POST['go'])){setcookie("tempcookie","",time()+30);  header("Location:".$_SERVER[PHP_SELF]);exit();  } if(isset($_COOKIE["tempcookie"])){  setcookie("tempcookie","",0);echo "您已經(jīng)提交過表單";  }?>

如果客戶端禁止了Cookie,該方法將不起任何作用,這點(diǎn)請(qǐng)注意。

3.使用Session處理
利用PHP的Session功能,也能避免PHP表單重復(fù)提交。Session保存在服務(wù)器端,在PHP運(yùn)行過程中可以改變Session變量,下次訪問這個(gè)變量時(shí),得到的是新賦的值,所以,可以用一個(gè)Session變量記錄表單提交的值,如果不匹配,則認(rèn)為是用戶在重復(fù)提交,請(qǐng)見如下代碼:

< ?php  session_start();//根據(jù)當(dāng)前SESSION生成隨機(jī)數(shù)  $code = mt_rand(0,1000000);  $_SESSION['code'] = $code;  ?>

在頁面表單上將隨機(jī)數(shù)作為隱藏值進(jìn)行傳遞,代碼如下:

< input type="hidden" name="originator" value="< ?=$code?>">


在接收頁面的PHP代碼如下:

  1. < ?php  

  2. session_start();  

  3. if(isset($_POST['originator'])) {  

  4. if($_POST['originator'] == 
    $_SESSION['code']){  

  5. // 處理該表單的語句,省略  

  6. }else{  

  7. echo &lsquo;請(qǐng)不要刷新本頁面或
    重復(fù)提交表單!&rsquo;;  

  8. }  

  9. }?> 

4.使用header函數(shù)轉(zhuǎn)向
除了上面的PHP表單重復(fù)提交的預(yù)防方法之外,還有一個(gè)更簡(jiǎn)單的方法,那就是當(dāng)用戶提交表單,服務(wù)器端處理后立即轉(zhuǎn)向其他的頁面,代碼如下所示。

  1. if (isset($_POST['action']) 
    && $_POST['action'] == 'submitted') {  

  2. //處理數(shù)據(jù),如插入數(shù)據(jù)后,立即轉(zhuǎn)向到其他頁面  

  3. header('location:submits_success.php');  

  4. }  

以上就是PHP中怎么預(yù)防表單重復(fù)提交,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:PHP中怎么預(yù)防表單重復(fù)提交
瀏覽路徑:http://jinyejixie.com/article34/psiise.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、外貿(mào)建站、定制開發(fā)商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
阳山县| 汉沽区| 蕲春县| 奉新县| 乌鲁木齐市| 虞城县| 扶风县| 咸阳市| 英山县| 丽水市| 桓仁| 温泉县| 全南县| 德化县| 巴南区| 福安市| 永善县| 丹阳市| 平乐县| 平谷区| 望奎县| 修文县| 张家川| 龙泉市| 大庆市| 民权县| 临沭县| 东源县| 资中县| 宝鸡市| 新密市| 贺州市| 无锡市| 木兰县| 泽库县| 旬阳县| 常宁市| 东平县| 沿河| 灵寿县| 津市市|