2013-11-03 38 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