<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            php語言

            php防止表單重復提交的方法

            時間:2025-02-24 16:01:47 php語言 我要投稿

            php防止表單重復提交的方法

              重復提交是我們開發中會常碰到的一個問題,除了我們使用js來防止表單的重復提交,同時還可以使用php來防止重復提交哦。大家知道php防止表單重復提交嗎?下面我們就給大家詳細介紹一下吧!

              用戶提交表單時可能因為網速的原因,或者網頁被惡意刷新,致使同一條記錄重復插入到數據庫中,這是一個比較棘手的問題。我們可以從客戶端和服務器端一起著手,設法避免同一表單的重復提交。

              1.使用客戶端腳本

              [代碼]xm l代碼:

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

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

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

              [代碼]xm l代碼:

              01

              02 var submitcount=0;

              03 function submitOnce (form){

              04 if (submitcount == 0){

              05 submitcount++;

              06 return true;

              07 } else{

              08 alert("正在操作,請不要重復提交,謝謝!");

              09 return false;

              10 }

              11 }

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

              2. 使用session(這個與JSP處理方法是一樣的)

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

              A頁面的代碼:

              [代碼]php代碼:

              01

              02 session_start(); //根據當前SESSION生成隨機數

              03 $code = mt_rand(0,1000000);

              04 $_SESSION['code'] = $code; //將此隨機數暫存入到session

              B頁面:

              [代碼]php代碼:

              01

              02session_start();

              03if(isset($_POST['originator'])) {

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

              05 echo "ok";

              06 unset($_SESSION["code"]); //將其清除掉此時再按F5則無效

              07 }else{

              08 echo "請不要刷新本頁面或重復提交表單";

              09 }

              10}?>

            【php防止表單重復提交的方法】相關文章:

            php通過記錄IP來防止表單重復提交方法分析10-17

            解決表單重復提交問題的PHP代碼11-02

            PHP提交from表單的方法07-05

            使用php自動提交表單的方法11-16

            php提交form表單處理方法07-12

            用PHP提交from表單的處理方法09-06

            如何真正解決表單重復提交問題php代碼10-11

            如何讓php提交form表單11-06

            php表單提交與$-POST實例分析11-15

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院