无法在特定网站上设置来自wordpress插件的cookie



我的wordpress插件设置了一个类似cookie的:

setcookie($key,json_encode($something),0,'/');

这通常有效,但不适用于特定用户的网站。在setcookie()调用之后立即执行var_dump($_COOKIES);显示相关cookie存在于数组中,但响应标头中没有setcookie。其他设置在网站公共端(而不是管理面板(的cookie,应该由我的插件设置,也不起作用。

用户安装了一个缓存插件,但即使页面请求根本没有命中任何缓存,这个问题仍然存在。

从活动主题中的functions.php文件设置测试cookie即可工作。

是什么导致了这个问题,可能有什么潜在的解决方案或进一步调试的方法?

放置在网站其他地方的代码,如functions.php或wordpress核心,可能会在响应返回浏览器之前修改标题。

尝试设置cookie,然后转储cookie,然后终止,然后查看浏览器响应标头:

setcookie($key,json_encode($something),0,'/');
var_dump($_COOKIES);
die();

如果它按预期工作,您可以在代码执行中进一步移动die();部分,直到找到冲突的代码。

否则,php开发中更好的方法是使用php异常断点在JetBrains IDE中,您可以添加断点,在每个断点都可以看到php超全局变量,如$_COOKIE

最新更新