我創建了一個用戶可以上傳圖像的網站,我想記錄單個圖像的瀏覽總數。實現圖像瀏覽次數的有效方法 - PHP
現在我的想法實現,這是:
在會話中存儲訪問者的ip地址,FE:
$key = "view_img_".$img->id;
if(!isset($_SESSION[$key]))
{
$_SESSION[$key] = array();
}
$visitorIpAddress = $_SERVER['REMOTE_ADDRESS'];
$found = false;
foreach($ip in $_SESSION[$key])
{
if($ip == $visitorIpAdress)
{
$found = true; //visitor has visited before in the livespan of this session
break;
}
}
if(!$found)
{
//do sql update query for the number of views for this image
$sql = mysql_query("UPDATE ") //etc.
//Add this ip to the list in the session
$_SESSION[$key][] = $visitorIpAdress;
}
現在我的問題是這樣的:
我想它清除訪問者在$ _SESSION [$ key]變量中的ipaddress,並在一定的時間限制後清除資源。
事情是:
大多數訪問者可能只能查看圖像一次,當某個圖像變老時,可能不再訪問,但會話仍然存在。
有沒有一種方法來定義一個特定的$ _SESSION變量的壽命,所以它重置自己? (等於$ _SESSION [$ key] = null)
或者會有更好的方法來實現這個嗎?
雖然你可以* *做到這一點在PHP中,它真的不是一個好主意,這樣做。幾乎每臺服務器都有內置的功能強大,可靠,經過充分測試的日誌記錄功能,並且有數十種成熟的工具可用於從統計分析中提取這些日誌中的數據。我建議與他們中的一個集成並且避免自己造成的DDoS攻擊(想象一下,幾個28kbps調制解調器請求大圖像並且您的進程已被停用)。 – coreyward 2011-02-18 09:37:19