亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語言

php防止表單重復(fù)提交的方法

時(shí)間:2024-10-16 03:28:39 php語言 我要投稿

php防止表單重復(fù)提交的方法

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

  用戶提交表單時(shí)可能因?yàn)榫W(wǎng)速的原因,或者網(wǎng)頁被惡意刷新,致使同一條記錄重復(fù)插入到數(shù)據(jù)庫中,這是一個(gè)比較棘手的問題。我們可以從客戶端和服務(wù)器端一起著手,設(shè)法避免同一表單的重復(fù)提交。

  1.使用客戶端腳本

  [代碼]xm l代碼:

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

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

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

  [代碼]xm l代碼:

  01

  02 var submitcount=0;

  03 function submitOnce (form){

  04 if (submitcount == 0){

  05 submitcount++;

  06 return true;

  07 } else{

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

  09 return false;

  10 }

  11 }

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

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

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

  A頁面的代碼:

  [代碼]php代碼:

  01

  02 session_start(); //根據(jù)當(dāng)前SESSION生成隨機(jī)數(shù)

  03 $code = mt_rand(0,1000000);

  04 $_SESSION['code'] = $code; //將此隨機(jī)數(shù)暫存入到session

  B頁面:

  [代碼]php代碼:

  01

  02session_start();

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

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

  05 echo "ok";

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

  07 }else{

  08 echo "請(qǐng)不要刷新本頁面或重復(fù)提交表單";

  09 }

  10}?>

【php防止表單重復(fù)提交的方法】相關(guān)文章:

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

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

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

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

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

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

如何實(shí)現(xiàn)php登陸表單提交CSRF及驗(yàn)證碼09-14

PHP多維數(shù)組去掉重復(fù)值的方法08-04

PHP如何獲取表單07-27

php防止SQL注入的方法分享09-29