1

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

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

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

echo $_COOKIE["visitCount"];

它始终保持在 2,无论我刷新页面多少次,都将不胜感激。

4

2 回答 2

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\"");
}

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

于 2013-11-03T13:59:11.877 回答
1

尝试这个

setcookie('visitCount', isset($_COOKIE['visitCount']) ? $_COOKIE['visitCount']++ : 1);
于 2013-11-03T13:57:55.900 回答