欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php環(huán)境下利用session防止頁面重復(fù)刷新的具體實現(xiàn)

 更新時間:2014年01月09日 17:11:50   作者:  
如何防止頁面重復(fù)刷新,在php環(huán)境下可以利用session來輕松實現(xiàn),下面是具體的代碼,需要的朋友可以參考下
b.php的代碼
復(fù)制代碼 代碼如下:

<?php
//只能通過post方式訪問
if ($_SERVER['REQUEST_METHOD'] == 'GET')
{header('HTTP/1.1 404 Not Found'); die('親,頁面不存在');}
session_start();
$fs1=$_POST['a'];
$fs2=$_POST['b'];
//防刷新時間,單位為秒
$allowTime = 30;
//讀取訪客ip,以便于針對ip限制刷新
/*獲取真實ip開始*/
if ( ! function_exists('GetIP'))
{
function GetIP()
{
static $ip = NULL;
if ($ip !== NULL)
{
return $ip;
}
if (isset($_SERVER))
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
/* 取X-Forwarded-For中第x個非unknown的有效IP字符? */
foreach ($arr as $xip)
{
$xip = trim($xip);
if ($xip != 'unknown')
{
$ip = $xip;
break;
}
}
}
elseif (isset($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else
{
if (isset($_SERVER['REMOTE_ADDR']))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
else
{
$ip = '0.0.0.0';
}
}
}
else
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_CLIENT_IP'))
{
$ip = getenv('HTTP_CLIENT_IP');
}
else
{
$ip = getenv('REMOTE_ADDR');
}
}
preg_match("/[\d\.]{7,15}/", $ip, $onlineip);
$ip = ! empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
return $ip;
}
}
/*獲取真實ip結(jié)束*/
$reip = GetIP();
//相關(guān)參數(shù)md5加密
$allowT = md5($reip.$fs1.$fs2);
if(!isset($_SESSION[$allowT])){
$_SESSION[$allowT] = time();
}
else if(time() - $_SESSION[$allowT]-->$allowTime){
$_SESSION[$allowT] = time();
}
//如果刷新過快,則直接給出404header頭以及提示
else {header('HTTP/1.1 404 Not Found'); die('來自'.$ip.'的親,您刷新過快了');}
?>

代碼很簡單,無非是把ip,以及通過POST方式提交到需要防刷新頁面的數(shù)據(jù)經(jīng)過md5加密后寫入session中,再通過存儲的session來判斷刷新時間間隔從而決定是否允許刷新。需要說明的是"$fs1=$_POST['a'];"、"$fs1=$_POST['a'];"兩個參數(shù)是指其他頁面通過post方式提交到需要防刷新頁的參數(shù)。之所以除了ip之外還要加這些參數(shù)的原因是為了區(qū)別不同的post結(jié)果。(實際上所謂的防刷新也就是防止某一頁面被反復(fù)提交。)

更具體的說,比如上述代碼放在b.php頁面的開頭,我們在a.html頁面有一個如下表單:
復(fù)制代碼 代碼如下:

<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>b.html</title>
</head>
<body>
<form action="b.php" method="post" >
<input type="hidden" id="a" name="a" value="a"/>
<input type="hidden" id="b" name="b" value="b"/>
<button name="" type="submit" >提交</button>
</form>
</body>
</html>

可以看到這個頁面提交的a和b 2個參數(shù)正是前面b.php中的2個參數(shù)(實際上應(yīng)該反過來說,由提交頁面的參數(shù)來決定)。在前面的php代碼中,已經(jīng)確定只能通過post訪問被提交數(shù)據(jù)的頁面,所以直接輸入地址會得到一個404頭的錯誤頁面,只能通過post方式來得到頁面,同時post刷新的時候會自己帶上參數(shù)地址,這樣就實現(xiàn)了同一頁面每個ip的防止刷新效果。

另外我們可以在被post的頁面增加通過referer判定來源網(wǎng)站,防止跨站提交,不過referer可以偽造,而且firefox和ie8經(jīng)常莫名其妙出現(xiàn)referer丟失的情況,所以暫時也就不加這個代碼。
  • PHP連接Nginx服務(wù)器并解析Nginx日志的方法

    PHP連接Nginx服務(wù)器并解析Nginx日志的方法

    這篇文章主要介紹了PHP連接Nginx服務(wù)器并解析Nginx日志的方法,PHP+Nginx也是目前一種相當(dāng)流行的服務(wù)器搭建方案,需要的朋友可以參考下
    2015-08-08
  • PHP 數(shù)據(jù)庫 常見問題小結(jié)

    PHP 數(shù)據(jù)庫 常見問題小結(jié)

    揭露 PHP 應(yīng)用程序中出現(xiàn)的五個常見數(shù)據(jù)庫問題 —— 包括數(shù)據(jù)庫模式設(shè)計、數(shù)據(jù)庫訪問和使用數(shù)據(jù)庫的業(yè)務(wù)邏輯代碼 —— 以及它們的解決方案。
    2009-06-06
  • php生成二維碼時出現(xiàn)中文亂碼的解決方法

    php生成二維碼時出現(xiàn)中文亂碼的解決方法

    這篇文章主要介紹了php生成二維碼時出現(xiàn)中文亂碼的解決方法,較為詳細(xì)的分析了php生成二維碼的方法,以及出現(xiàn)亂碼時的解決方法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • 完美解決令人抓狂的zend studio 7代碼提示(content Assist)速度慢的問題

    完美解決令人抓狂的zend studio 7代碼提示(content Assist)速度慢的問題

    本篇文章是對解決令人抓狂的zend studio 7代碼提示(content Assist)速度慢的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 基于magic_quotes_gpc與magic_quotes_runtime的區(qū)別與使用介紹

    基于magic_quotes_gpc與magic_quotes_runtime的區(qū)別與使用介紹

    本篇文章小編為大家介紹,基于magic_quotes_gpc與magic_quotes_runtime的區(qū)別與使用介紹。需要的朋友參考下
    2013-04-04
  • php測試kafka項目示例

    php測試kafka項目示例

    這篇文章主要介紹了php測試kafka項目,結(jié)合實例形式分析了kafka-php項目依賴的安裝、配置及測試使用技巧,需要的朋友可以參考下
    2020-02-02
  • php文件包含目錄配置open_basedir的使用與性能詳解

    php文件包含目錄配置open_basedir的使用與性能詳解

    下面小編就為大家?guī)硪黄猵hp文件包含目錄配置open_basedir的使用與性能詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • php數(shù)值計算num類簡單操作示例

    php數(shù)值計算num類簡單操作示例

    這篇文章主要介紹了php數(shù)值計算num類簡單操作,結(jié)合實例形式分析了PHP數(shù)值計算相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下
    2020-05-05
  • php反射學(xué)習(xí)之依賴注入示例

    php反射學(xué)習(xí)之依賴注入示例

    這篇文章主要介紹了php反射學(xué)習(xí)之依賴注入,結(jié)合具體實例形式分析了php基于反射的依賴注入原理與實現(xiàn)方法,需要的朋友可以參考下
    2019-06-06
  • 最新評論