解決方案一:引入cookie機制來解決
提交頁面**如下a.php**如下:
<?php
setcookie("onlypost", 't'); //設定cookie,可以帶上時間值。像有些論壇防止灌水就可以將你的一些基本資訊存放到裡面。
?>
處理頁面b.php**如下:
<?php
if($_cookie['onlypost'] == 't')
?>
如上處理的缺點:如果客戶端禁止了cookie,該方法將不起任何作用,這點請注意。
解決方案二:使用session(這個與jsp處理方法是一樣的)
利用php的session功能,也能避免重複提交表單。session儲存在伺服器端,在php執行過程中可以改變session變數,下次訪問這個變數時,得到的是新賦的值,所以,可以用乙個session變數記錄表單提交的值,如果不匹配,則認為是使用者在重複提交。
a頁面的**:
<?php
session_start(); //根據當前session生成隨機數
$code = mt_rand(0,1000000);
$_session['code'] = $code; //將此隨機數暫存入到session
?>b頁面:
<?php
session_start();
if(isset($_post['originator'])) else
}?>
解決方案三:在伺服器端做重定向處理
if (isset($_post['action']) && $_post['action'] == 'submitted')
php 防止表單重複提交
問題 解決 法1,表單資料提交後即進行頁面跳 具體如下 資料庫檔案 1create table form 2name char 50 not null3 表單檔案一form.php 1 form action form handle.php method post 2 input type name...
防止php表單重複提交
在php表單提交問題,經常發現 重新整理一下要讓你重新提交資料問題 如果解決這個問題需要引入乙個 cookie變數 來做 seesion 也行.例子1 t1.php form id form1 name form1 method post action t2.php p 說明 input type ...
防止表單重複提交
新增乙個使用者時,發現重複新增了4 5個,原來是重複提交了。怎麼解決這個問題呢,起初是在後端檢查新增的屬性是否已有,例如姓名和手機號是否重複,如果重複就不儲存,沒想到後來隨著業務的複雜化,新增乙個使用者所需時間越來越長,以致在檢查時還沒插入完畢。那就在提交時就關閉form,可是這樣一來,如果後端檢查...