访问计数器,cookie不增加

时间:2013-11-03 13:51:41

标签: php cookies

我需要在我的页面上设置一个计数器,每次访问网站时都会增加,非常简单,但是......

我遇到了一个问题,由于某种原因我的页面计数器根本没有增加,即使代码看起来是正确的。

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

echo $_COOKIE["visitCount"];

它始终保持在2,无论我刷新页面多少次,都会非常感谢帮助。

2 个答案:

答案 0 :(得分: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\"");
}

为了更容易发现这些错误,请为开发启用错误报告:

答案 1 :(得分:1)

试试这个

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