本文目錄一覽:
php通過記錄IP來防止表單重複提交方法分析
本文實例分析了php通過記錄IP來防止表單重複提交方法。分享給大家供大家參考。具體分析如下:
這個原理比較的簡單就是用戶第一次提交時我們記錄提交用戶的IP地址,這樣如果用戶在固定時間內再次提交表單就會提示重複提交了,這種做法通常用於在頂一下,支持一下這種應用中了,在防止數據重複提交是一個非常不好的選擇.
例子,代碼如下:
複製代碼
代碼如下:?php
session_start();
if(empty($_SESSION[‘ip’]))//第一次寫入操作,判斷是否記錄了IP地址,以此知道是否要寫入數據庫
{
$_SESSION[‘ip’]=$_SERVER[‘REMOTE_ADDR’];//第一次寫入,為後面刷新或後退的判斷做個鋪墊
mysql_query(“INSERT
INTO
admin(id,
name,
age)
VALUES(123,
‘姚明’,
25)”);//寫入數據庫操作
}
else//已經有第一次寫入後的操作,也就不再寫入數據庫
{
echo
‘請不要重複提交表單或刷新頁面’;//寫一些已經寫入的提示或其它東西
}
?
還有辦法就是:
1:在頁面生成隨機碼,也就是每次提交隨機碼都不一樣,在提交的時候驗證隨機碼!
2:在提交的時候,驗證如果數據存在,就不提交了.
如果你想防止重複提交入庫IP不是最好的辦法,我們可以在數據庫中查詢是不是有相同記錄並且IP是不是想同再進行處理.
例子,代碼如下:
複製代碼
代碼如下:$sql
=”select
*
from
表名
where
buy_tel=’電話’
and
IP=’$ip’
“;//
and
$time-buy_date60
$query
=
$db-query(
$sql
);
if(
$db-rows(
$query
)
)
{
echo(‘scriptalert(“您己提交過了,請勿重複提交!”);/script’);
}
else
{
//進行入庫操作
}
希望本文所述對大家的PHP程序設計有所幫助。
php 提交表單到當前頁面如何防止頁面刷新重複提交~
最常用的方法就是利用token。即:
1、在生成頁面的時候生成一個token(隨機字符串),並把它同時寫入表單的某個hidden中,和服務端的session中。
2、客戶端提交表單到服務器時,比對錶單中的token與session中的token是否一致。若不一致則認為是無效的請求。
3、不管第2步的校驗是否通過,token只要使用一次後就立即作廢(即:從session中銷毀)。同時token也可以關聯時間信息,超時後也自動作廢。
這樣,即便客戶端重複提交,也只有第一次的請求能夠成功。
php 如何防止表單重複提交呢
在php中如何防止表單的重複提交
?php
/*
* php中如何防止表單的重複提交
*/
session_start();
if (empty($_SESSION[‘ip’])) {//第一次寫入操作,判斷是否記錄了IP地址,以此知道是否要寫入數據庫
$_SESSION[‘ip’] = $_SERVER[‘REMOTE_ADDR’]; //第一次寫入,為後面刷新或後退的判斷做個鋪墊
//………..//寫入數據庫操作
} else {//已經有第一次寫入後的操作,也就不再寫入數據庫
echo ‘請不要再次刷新和後退’; //寫一些已經寫入的提示或其它東西
}
?
還有辦法就是:
1、在頁面生成隨機碼,也就是每次提交隨機碼都不一樣,在提交的時候驗證隨機碼!
2、在提交的時候,驗證如果數據存在,就不提交了
原創文章,作者:M2RZ8,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127803.html