我正在尝试为网站设置一个cookie,如果它不存在的话。它不起作用。
if(isset($_COOKIE['about'])){
$_COOKIE['about'] += 1;
}
if(!isset($_COOKIE['about'])){
setcookie("about", 1, time()+3600);
}
我也试过
if(empty($_COOKIE['about'])){
setcookie("about", 1, time()+3600);
}
答案 0 :(得分:4)
$_COOKIE
超全球只有您可以从中读取值。写入它不会更新cookie,因为这需要将新的Cookie标头发送到浏览器。由cookie支持的sessions可能会更好地服务,因为PHP允许您修改会话而无需显式保存/设置cookie。
答案 1 :(得分:2)
您只能从$_COOKIE
超全球读取内容,请尝试正常设置:
setcookie("about",$_COOKIE['about']+1,time()+3600);
所有在一起:
if(isset($_COOKIE['about'])){
$_COOKIE['about'] += 1;
}else{
setcookie("about", 1, time()+3600);
}
请注意其他,您之前已检查过Cookie是否已设置,因此无需再次检查是否存在,或者不是。
答案 2 :(得分:1)
请确保您尚未向用户发送任何信息,因为setcookie
调用只是header()
的别名(但需要遵循特定架构)。您可能已禁用错误输出并且缺少消息,因此它似乎可以正常工作但在后台失败。
setcookie
应该是您网页上的第一个电话,其中包括开始会话并设置header
。