设置Cookie不起作用

时间:2013-12-20 11:02:40

标签: php cookies

这不是每次加载页面时都会增加的吗?因为它没有在2处结束,当我打开包含代码的其他页面时,它告诉我$_COOKIE['count']未设置。

if(!isset($_COOKIE['count'])){
    setcookie("count", 1, time() + 31536000);
} else {
    setcookie("count", $_COOKIE['count']++, time() + 31536000);
}

好的,所以回答增加的问题,感谢你为你们修复了+ 1,但第二个问题仍然存在:

好的,现在它正常递增但是问题2对于1页仍然是相同的,例如index.php当我转到另一页时,cookie的值为15 second.php当我刷新它的6时值为5,当我回到index.php时,值为16.任何想法?

3 个答案:

答案 0 :(得分:5)

$_COOKIE['count']++更改为$_COOKIE['count']+1++$_COOKIE['count'],代码将完美运行。

答案 1 :(得分:2)

$a = 1;
$b = $a++; //with the $a++ syntax, $b is set to $a's old value first, 
//and then $a is increased
//$b = 1, $a = 2

$a = 1;
$b = ++$a //with the ++$a syntax,  $a is incremented first 
//and then $b is set to (incremented) $a
//$b = 2, $a = 2

所以,你需要做++$_COOKIE['count'],因为你想在传递给setcookie之前增加cookie值。

答案 2 :(得分:0)

好的,所以我有2个问题。首先是增量部分(但我只是测试值是否正在改变并不真正需要增量部分)而第二个是页面之间的混合。 。为什么不同的页面具有不堆叠的不同值。这个问题的答案是。 。我没有为path parameter设置值,我没有意识到在那之前需要它。我认为这是因为我的url rewrites不确定而只是一种预感。但无论如何,路径参数为我修复了它。

如果您遇到同样的问题,只需在设置Cookie时为路径参数添加值:

  

setcookie(“cookiename”,$ cookievalue,$ cookielifespan,'/');

如果路径参数设置为'/',则Cookie将在整个域中可用

有关详细信息,请查看 manual, 干杯!