PHP setcookie()不总是覆盖值
我一直在为一个间歇性的问题烦恼。我正在剖析这个问题,但由于时断时续,需要一段时间。我发现了一个可行的方法,我只是不知道为什么,它让我感到困扰,也许有人可以找出一个模式并猜测原因: 摘要:这一行并不总是有效:PHP setcookie()不总是覆盖值,php,ajax,cookies,Php,Ajax,Cookies,我一直在为一个间歇性的问题烦恼。我正在剖析这个问题,但由于时断时续,需要一段时间。我发现了一个可行的方法,我只是不知道为什么,它让我感到困扰,也许有人可以找出一个模式并猜测原因: 摘要:这一行并不总是有效: setcookie('myhash',$aHash,0,MYSUBDIR); Background:当我在一段时间后回到电脑,打开Firefox标签并执行类似add to basket的AJAX调用后,这种情况经常会发生。(WAMP服务器,本地主机,由本地IP 192.x.x.x访问,未在
setcookie('myhash',$aHash,0,MYSUBDIR);
Background:当我在一段时间后回到电脑,打开Firefox标签并执行类似add to basket的AJAX调用后,这种情况经常会发生。(WAMP服务器,本地主机,由本地IP 192.x.x.x访问,未在其他地方测试)。之后,我打开调试输出并可以刷新页面等,但cookie从未设置。包括ajax在内的所有页面都位于MYSUBDIR或其子目录中
调试步骤:我非常小心地确保页面的调试输出和所有其他输出都被发送到缓冲区:我先调用ob\u start()
,然后调用ob\u end\u flush()
。从其他SO问题来看,这似乎是常见的失败
我发现的解决方法是在上面提到的行之前添加这一行:
setcookie('myhash',$aHash,time()-1000);
奇怪的是,使用这一行而不是上面的解决方法不起作用:
setcookie('myhash',$aHash,time()-1000,MYSUBDIR);
关于原因的思考:
MYSUBDIR
常量,因此可能默认设置路径为“/”的cookie-尽管我向E_ALL、verbose output和DB报告了错误,并且没有看到任何此类错误记录李>
var\u dump($\u cookie)
(在ob\u start()
之后)并没有发现cookie键有任何问题有人能找出无法覆盖cookie的可能原因吗?
setcookie('myhash','',time()-1000,MYSUBDIR)代码>工作?有没有想过?我也有同样的事情,记忆cookie没有被覆盖?