91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中怎么預防表單重復提交

發布時間:2021-06-30 15:14:03 來源:億速云 閱讀:122 作者:Leah 欄目:編程語言

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

1.使用客戶端JS腳本
提到客戶端腳本,經常使用的是JavaScript進行常規輸入驗證。

< 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='正在提交,請等待...';  document.register.cont.disabled=true;document.the_form.submit();"> < /form>
  • 深入剖析PHP變量的具體使用方法

  • PHP類Snoopy的特點分析

  • 詳細解讀PHP $_FILES數組的內容

  • PHP APC的安裝與高級使用

  • PHP表單數組的具體使用方法介紹

當用戶單擊“提交”按鈕后,該按鈕將變為灰色不可用狀態。

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

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

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


在上例中,如果用戶已經單擊“提交”按鈕,該腳本會自動記錄當前的狀態,并將submitcount變量自加
1,當用戶試圖再次提交時,腳本判斷submitcount變量值非零,提示用戶已經提交,從而避免重復提交表單。

2.使用Cookie處理
使用Cookie記錄表單提交的狀態,根據其狀態可以檢查是否已經提交表單,請見下面的代碼:

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

如果客戶端禁止了Cookie,該方法將不起任何作用,這點請注意。

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

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

在頁面表單上將隨機數作為隱藏值進行傳遞,代碼如下:

< 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;請不要刷新本頁面或
    重復提交表單!&rsquo;;  

  8. }  

  9. }?> 

4.使用header函數轉向
除了上面的PHP表單重復提交的預防方法之外,還有一個更簡單的方法,那就是當用戶提交表單,服務器端處理后立即轉向其他的頁面,代碼如下所示。

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

  2. //處理數據,如插入數據后,立即轉向到其他頁面  

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

  4. }  

以上就是PHP中怎么預防表單重復提交,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

响水县| 台州市| 安远县| 武平县| 文成县| 图们市| 铜川市| 五华县| 安福县| 兴文县| 新密市| 永春县| 新平| 广南县| 赫章县| 开封市| 沁源县| 涪陵区| 利辛县| 福海县| 大安市| 灵台县| 和田市| 建德市| 吉安市| 宜阳县| 获嘉县| 绩溪县| 东宁县| 翁牛特旗| 左权县| 赤城县| 新平| 海南省| 武穴市| 阿城市| 万全县| 黔江区| 会昌县| 富宁县| 潍坊市|