2013-11-03 64 views
1

我需要有我的網頁上的計數器,將每個網站訪問時間增加,很簡單吧,可是......訪問計數器,與cookies不增加

我遇到了一個問題,對於一些因爲即使代碼看起來是正確的,我的頁面計數器也不會增加。

<?php 
if (!isset($_COOKIE["visitCount"])) { 
    setcookie("visitCount", 1); 
} else { 
    $_COOKIE["visitCount"]++; 
} 

echo $_COOKIE["visitCount"]; 

它始終停留在2,無論我刷新頁面多少次,幫助將不勝感激。

+0

你想要統計頁面訪問量還是每個用戶的訪問次數? –

+0

我只是想讓cookie visitCount在每次加載頁面時都加1 – user2209644

+0

這個問題在不久之前就已經提出。但更重要的是,您瞭解瞭如何爲日誌記錄設置錯誤報告:到最高級別和php.ini。另請參閱:[如何獲得有用的錯誤消息在PHP?](http://stackoverflow.com/a/14504459/367456) – hakre

回答

3

您需要設置變量,然後才能首次訪問。

所以你需要設置它,然後再使用它,以防它尚未設置。

如果設置,您還需要消毒/驗證輸入:

<?php 

$name = "visitCount"; 

if (!isset($_COOKIE[$name])) { 
    $_COOKIE[$name] = 0; 
} 
$_COOKIE[$name] = 1 + (int) max(0, $_COOKIE[$name]); 
$result = setcookie($name, $_COOKIE[$name]); 
if (!$result) { 
    throw new RuntimeException("Failed to set cookie \"$name\""); 
} 

要容易點的錯誤,使錯誤發展報告:

+0

謝謝,這就像一個魅力,你知道我的版本爲什麼不起作用嗎? – user2209644

+0

@ user2209644 Cookie未以遞增的值進行更新。 – Kermit

+0

可能是,你在增加,但你沒有設置到cookie –

1

試試這個

setcookie('visitCount', isset($_COOKIE['visitCount']) ? $_COOKIE['visitCount']++ : 1); 
+0

這也停留在「2」,不會去3,4,5 ... =/ – user2209644

+0

然後嘗試Chinnu R的建議,可能需要將該計數器保存在一個變量中 – Nextar