如果cookie在PHP中不存在,则无法设置cookie
我正在尝试为不存在的站点设置cookie。它不起作用如果cookie在PHP中不存在,则无法设置cookie,php,cookies,Php,Cookies,我正在尝试为不存在的站点设置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); } 请确保尚未向用户发送任何信息,
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);
}
请确保尚未向用户发送任何信息,因为
setcookie
调用只是header()
的别名(但要遵循特定的模式)。您可能已禁用错误输出,并且缺少该消息,因此它似乎可以工作,但在后台失败
setcookie
应该是页面上的第一个调用之一,在上面启动会话并设置标题超全局$\u COOKIE
仅可供您从中读取值。写入它不会更新cookie,因为这需要向浏览器发送新的cookie头。您可能会得到更好的cookie支持,因为PHP允许您修改会话,而无需显式保存/设置cookie 您只能从$\u COOKIE
超全局读取内容,请尝试正常设置:
setcookie("about",$_COOKIE['about']+1,time()+3600);
因此,总而言之:
if(isset($_COOKIE['about'])){
$_COOKIE['about'] += 1;
}else{
setcookie("about", 1, time()+3600);
}
请注意,else,您以前已经检查过cookie是否已设置,因此无需再次检查它是否已设置。我认为您必须始终使用setcookie
,因此setcookie(“about”,$\u cookie['about']+1,time()+3600)
但是我会尽快尝试,然后回复你,据我所知,cookie根本没有设置,但是让我再检查一下,谢谢。谢谢!这似乎有效,但是!isset不起作用,只有empty对我起作用,把它作为一个答案,这样我就可以给你信用,这是很奇怪的,因为我发誓我以前就是这样做的,它对我起作用,但也许我错了。