當前位置:首頁 » 編程語言 » php防止刷新

php防止刷新

發布時間: 2022-02-27 02:42:42

php中如何防止刷新一次提交一次

1.session記錄
submit.php為發送頁面,在這個頁面上設置一個session變數,,並作為隱藏域和表單一起發送到,submitdeal.php頁面..在伺服器端把post上來的隱藏變數和伺服器端記錄的session變數進行對比,,比如一樣,則寫入資料庫並清除session,這樣用戶刷新頁面,兩個值不相等提示錯誤或跳轉
優點:不用用戶輸入驗證碼,
缺點:表單容易被復制
2.驗證碼
原理和第一種一樣,,只是session數據不作為隱藏域提交,,而是讓用戶填寫,大多數網站都彩用,,有文字驗證碼和圖片驗證碼,,圖片驗證碼安全性高..別
3.IP綁定
提交數據後,先從IP表裡檢索客戶端IP,如果有,並且沒有過期,那麼報錯,否則寫入資料庫,然後再取客房端IP,把IP寫入資料庫,,
4.cookie
客戶提交後處理程序先檢索客戶端有沒有設置cookie,如果有,則不重復提交,如果沒有,則寫數據,,再寫個cookie;
說得不是很明白,希望你能看明白一點點...圖片驗證碼最常用

Ⅱ PHP怎麼防刷新文章點擊數

使用 SESSION,參考資料:

在進行數據處理和保存前,首先判斷瀏覽器的獲得頁面方式。使用$_SERVER
["REQUEST_METHOD"]變數來獲得瀏覽器的獲得頁面方式。檢查其是否為」POST」。在
腳本中使用session來記錄用戶是否通過正常途徑(即填寫提交內容的頁面)來提
交數據。或使用$_SERVER["HTTP_REFERER"]來檢測,但不推薦這樣做。因為部分瀏
覽器沒有設置REFERER,有部分防火牆也會屏蔽REFERER。另外,我們也要對提交內
容檢查,看資料庫中是否有重復內容。以留言本為例,使用Session進行判定:
填寫瀏覽內容的頁面中,我們在最前端加上:

$_SESSION["allowgbookpost"]=time(); //登記填寫時的時間

在接受留言數據並保存的頁面中我們在進行數據處理前我們也用Session進行
以下處理:

if(strtoupper($_SERVER["REQUEST_METHOD"])!=」POST」){ die("錯誤:請勿在外
部提交。"); } //檢查頁面獲得方法是否為POST
if(!isset($_SESSION["allowgbookpost"]) or
(time()-$_SESSION["allowgbookpost"] < 10)){ die("錯誤:請勿在外部提交。
"); } //檢查留言填寫時的時間
if(isset($_SESSION["gbookposttime"]) and
(time()-$_SESSION["gbookposttime"] < 120)){ die("錯誤:兩次提交留言的間
隔不得少於 2 分鍾。"); } //檢查留言間隔

unset($_SESSION["allowgbookpost"]); //注銷allowgbookpost變數以防止一次進
入填寫頁面多次進行提交
$_SESSION["gbookposttime"]=time(); //登記發送留言的時間,防止灌水或惡意攻擊
...
數據處理及保存
...

Ⅲ 如何防止刷新頁面帶來的瀏覽次數的增加 - PHP進階討論

用COOKIE記錄用戶最後一次訪問的頁面地址和時間當請求新頁面時,判斷請求頁面的地址與COOKIE中記錄的最後一次訪問頁面地址是否相同。如果相同,在判斷此此請求的時間與COOKIE的時間進行比較,如果時間差小於N秒,就可以認為用戶是在刷新。如果不是刷新,就更新COOKIE中的頁面地址和訪問時間

Ⅳ php 如何避免刷新頁面重復插入數據到資料庫

每次進入提交的頁面,給一個session,為了避免重復,session的key可以是隨機的。

在表單填寫頁面
<?php
session_start(); // 啟用session
$time = time();
$key = 'sess_' . $time; // 根據時間生成一個隨機的session key
$_SESSION[$key] = $time; // 設置session的值
?>

<!--{通過隱藏表單將 session 的 key傳遞到服務端處理}-->
<input type="hidden" name="session_key" value="<?php echo $time;?>" />

處理頁面

<?php
session_start(); // 啟用session
$key = $_POST['session_key'];
if(!$key || $_SESSION[$key] != substr($key, 5)){
// 如果沒有傳 session_key 參數
// 或者 session_key 參數值截斷 sess_後的數字 與 session參數值不匹配
unset($_SESSION[$key]); // 刪除 session 值
// 然後考慮是否要提示錯誤,或者轉入另一個頁面
exit(); // 終止頁面代碼執行
}

// 下面進行數據寫操作

// 數據操作完成後,刪除session
unset($_SESSION[$key]);

// 後續操作
?>

$########################

一個頁面也是一樣的,我給你的只是一個思維,
具體如何實現,你要根據自己的實際情況去處理
很多東西都不是通用的

另外,不管多少個頁面,必然包含兩個部分,一部分是表單填寫,一部分是數據處理,這個跟多少個頁面無關~~就看你是否能夠理解這段代碼的意義,如果不理解的話,嵌套進去也沒啥用,能夠理解的話,或許你能夠找出更適合自己的解決方案

Ⅳ php防止刷新

<?php
session_start();
$allow_sep = "3";
if (isset($_SESSION["post_sep"]))
{
if (time() - $_SESSION["post_sep"] < $allow_sep)
{
exit("請不要反復刷新");
}
else
{
$_SESSION["post_sep"] = time();
}
}
else
{
$_SESSION["post_sep"] = time();
}
?>

之所以不能用cookie,是為了防止關閉瀏覽器的cookie後惡意刷新

Ⅵ php怎麼禁止瀏覽器刷新

這個要用js來做

Ⅶ 用php語言寫程序,怎樣防止刷新頁面

你是要完全防惡意刷新還是為了減輕伺服器壓力?

完全防止惡意刷新。使用 SESSION 或者 COOKIE。記錄訪問頁面的時間。如果小於3秒就中斷程序運行。顯示空白頁。

減輕伺服器壓力的話。你可以使用輸出緩存功能。

代碼跟據原理自己寫就行了。本來就不復雜。

Ⅷ php如何避免刷新頁面重復提交

可以採用ajax配合使用php可以防止刷新頁面重復提交
也可以使用框架同樣可以防止
你直接訪問數據處理頁面的時候,$_POST['title'],$_POST['num] 應該是空值,所以你增加一個判斷,必須有具體的值,再進行sql操作。

Ⅸ PHP避免刷新頁面重復提交

這個解決的辦法是在 x.php 中加入跳轉代碼,使頁面跳轉就好了,例如,html->x.php->數據處理後跳轉到成功頁面->success.html

Ⅹ php怎樣防止刷新重復提交

通常是在表單中增加一個驗證碼。這是防無意刷新的簡便方法。一刷新,驗證碼自動更新,處理程序就會檢測到驗證碼不對。

熱點內容
如何製作原始傳奇腳本 發布:2025-01-10 23:00:30 瀏覽:117
小程序免費模板源碼下載 發布:2025-01-10 22:55:23 瀏覽:233
gradle編譯jar 發布:2025-01-10 22:54:36 瀏覽:796
伺服器搭建棋牌游戲 發布:2025-01-10 22:53:49 瀏覽:642
java記事本程序 發布:2025-01-10 22:38:27 瀏覽:666
如何通過網吧電腦進入網吧伺服器 發布:2025-01-10 22:22:30 瀏覽:706
資料庫緩存是什麼 發布:2025-01-10 22:21:05 瀏覽:386
dns配置出現錯誤該怎麼辦 發布:2025-01-10 22:13:00 瀏覽:439
雲頂演算法 發布:2025-01-10 22:10:07 瀏覽:991
收件伺服器有什麼作用 發布:2025-01-10 21:50:01 瀏覽:391