如果cookie在PHP中不存在,则无法设置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); } 请确保尚未向用户发送任何信息,

我正在尝试为不存在的站点设置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);
}

请确保尚未向用户发送任何信息,因为
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对我起作用,把它作为一个答案,这样我就可以给你信用,这是很奇怪的,因为我发誓我以前就是这样做的,它对我起作用,但也许我错了。