尝试增加一个n php cookie时出现奇怪的结果

时间:2014-01-10 19:20:18

标签: php cookies

有人可以请问这是怎么回事。

Cookie会在2点停止吗?

<?php 
if (isset($_COOKIE["count"]))
{
    $cookie = ++$_COOKIE['count'];
}
else {
  echo "Welcome guest!<br>";
  setcookie("count", 1, time()+3600);
}

ECHO $cookie;

?>

谢谢大家

4 个答案:

答案 0 :(得分:1)

您无法通过递增$ _COOKIE [xxx]来更改Cookie值,您必须使用setcookie()函数。这将有效:

<?php
$cookie = isset($_COOKIE["count"]) ? $_COOKIE["count"] : 0;
setcookie('count', $cookie + 1, time()+3600);
ECHO $cookie;

答案 1 :(得分:0)

$cookie = ++$_COOKIE['count'];只被调用一次。如果$_COOKIE[count]具有数值,$cookie将存储该值加1.

此外,以下内容并非严格正确:

echo "Welcome guest!<br>";
setcookie("count", 1, time()+3600);

您无法在标头前拨打echo。我建议你改成它:

setcookie("count", 1, time()+3600);
echo "Welcome guest!<br>";

答案 2 :(得分:0)

您无法以这种方式更新Cookie。但是你可以覆盖它。

See setcookie for more info.

如果设置了cookie,则在下一个请求之前不会检索它,因此$ _COOKIE中不会出现数据。

因此设置cookie并访问它不能在同一个实例中。设置后需要重定向或刷新。 只需使用setcookie()递增。

答案 3 :(得分:-3)

增加你把++放在字符串后面,而不是它之前。