您好,登錄后才能下訂單哦!
今天小編給大家分享的是php禁止頁面刷新的兩種方法,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結了以下內容,一起往下看吧。一定會有所收獲的哦。
方法:在頁面訪問時判斷是否有session,沒有的話直接創建一個session,并設置為當前時間,程序正常向下執行;如果有session,判斷session里的時間和當前時間的時間差,如果間隔小于規定的時間,則中斷程序執行。
php禁止頁面刷新的方法
方法1:
一小段代碼實現頁面防刷新,可能沒有太大的用途,只是一個思路,供參考。
原理:
在頁面訪問時判斷是否有session,沒有的話直接創建一個session,并設置為當前時間,程序正常向下執行;
如果有session,判斷 session里的時間和當前時間的時間差,如果間隔小于規定的時間,如本例的5分鐘,則中斷程序執行并提示錯誤信息;
如果session里的時間大于當 前的時間,則刷新session中的時間,頁面正常執行。
代碼如下:
session_start(); //啟動session $timeOutLimit = "300"; //設置時間間斷五分鐘 if (isset($_SESSION["timeout"])) { //判斷是否有session if (time() - $_SESSION["timeout"] <</span> $timeOutLimit) { //如果有session 且session時間間隔小于5分鐘 直接die()退出并輸出提示信息。 die("請不要多次刷新當前頁面"); } else { //如果沒有超時,將session時間重置為當前時間。 $_SESSION["timeout"] = time(); } } else { $_SESSION["timeout"] = time(); //如果沒有timeout的session,則創建session為當前時間,便于下次訪問頁面時判斷 } //其它頁面代碼.....
方法2:
//代理IP直接退出 empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); //防止快速刷新 session_start(); $seconds = '3'; //時間段[秒] $refresh = '5'; //刷新次數 //設置監控變量 $cur_time = time(); if(isset($_SESSION['last_time'])){ $_SESSION['refresh_times'] += 1; }else{ $_SESSION['refresh_times'] = 1; $_SESSION['last_time'] = $cur_time; } //處理監控結果 if($cur_time - $_SESSION['last_time'] < $seconds){ if($_SESSION['refresh_times'] >= $refresh){ //跳轉至攻擊者服務器地址 header(sprintf('Location:%s', 'http://127.0.0.1')); exit('Access Denied'); } }else{ $_SESSION['refresh_times'] = 0; $_SESSION['last_time'] = $cur_time; }
關于php禁止頁面刷新的兩種方法就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。