中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2021-02-22 15:38:04 來源:億速云 閱讀:155 作者:清風 欄目:編程語言

這篇文章主要為大家展示了php防止表單重復提交的方法,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“php防止表單重復提交的方法”這篇文章吧。

php有什么用

php是一個嵌套的縮寫名稱,指的是英文超級文本預處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

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

1.使用客戶端腳本

<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>

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

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

<script language="javascript">
var submitcount=0;
function submitOnce (form){
    if (submitcount == 0){
         submitcount++;
         return true;
    } else{
        alert("正在操作,請不要重復提交,謝謝!");
        return false;
    }
}
</script>
<form name="the_form" method="post" action="" onSubmit="return submitOnce(this)">
<input name="text" type="text" id="text" />
<input name="cont" value="提交" type="submit">
</form>

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

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

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

<?php
session_start();                //根據當前SESSION生成隨機數
$code = mt_rand(0,1000000);
$_SESSION['code'] = $code;      //將此隨機數暫存入到session
?>
<form id="form1" name="form1" method="post" action="t2.php">
    <p>說明 <input type="text" name="titile" />
        <input type="hidden" name="originator" value="<?php echo $code;?>"></p>
    <p><input type="submit" name="Submit" value="提交" /></p>
</form>

B頁面:

<?php
session_start();
if(isset($_POST['originator'])) {
    if($_POST['originator'] == $_SESSION['code']){
        echo "ok";
        unset($_SESSION["code"]);               //將其清除掉此時再按F5則無效
    }else{
        echo "請不要刷新本頁面或重復提交表單";
    }
}?>

以上就是關于“php防止表單重復提交的方法”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。

向AI問一下細節

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

php
AI

井冈山市| 贵定县| 象山县| 壶关县| 衢州市| 济宁市| 合江县| 周宁县| 虎林市| 永登县| 平阴县| 曲水县| 吉安市| 安龙县| 西贡区| 无为县| 尉氏县| 息烽县| 锦屏县| 普宁市| 柯坪县| 离岛区| 陇南市| 雷州市| 古浪县| 灌阳县| 苍南县| 固镇县| 南开区| 皮山县| 五指山市| 洞口县| 商城县| 吴江市| 霍林郭勒市| 鸡西市| 青海省| 明溪县| 城步| 滨海县| 永州市|