无法从特定站点上的wordpress插件设置cookie

问题描述 投票:0回答:1

我的wordpress插件将cookie设置为:

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

通常可以使用,但不适用于特定用户的网站。在var_dump($_COOKIES);调用之后立即执行setcookie(),表明相关的cookie存在于数组中,但是响应头中没有setcookie。在网站的公共端设置的其他Cookie(不是管理控制台)也应由我的插件设置,也无法使用。

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

在活动主题中从functions.php文件设置测试cookie起作用。

可能导致问题的原因以及对此的潜在解决方案或进一步调试方法?

php wordpress cookies setcookie
1个回答
0
投票

放置在网站其他位置的代码(例如functions.php或wordpress核心)可能会在响应返回到浏览器之前修改标头。

尝试设置cookie,然后转储cookie,然后死亡,然后查看浏览器的响应头:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.