无法使用$_COOKIE wordpress检索任何COOKIE


cant retrieve any cookies with $_COOKIE wordpress

我正在尝试检索使用setcookie()设置的cookie。这些是会话cookie,设置为域站点的根。

经过大量测试,这个问题已经归结为wordpress正在运行的某个服务器。它在我的本地甚至在托管的开发服务器上都能工作,但在生产服务器上它无法读取cookie。

目前cookie设置为:

setcookie("visited", "true", mktime(23,59,59,12,31,2015), "/");

我也试过使用

setcookie("visited", "true", mktime(23,59,59,12,31,2015), "/", ".mydomain.com");

正如其他论坛所提到的那样,使其更容易访问。

我曾经在用php设置和获取cookie的header.php文件中运行过这段代码,然后在发现wordpress会破坏头部后将其移到functions.php,这可能会把事情搞砸。这仍然没有解决问题。

有什么建议吗?

如果您使用的是WP引擎,那么$_COOKIE很可能是一个空数组,因为它们的缓存系统。缓存的一个例外是具有包含wordpress_的cookie的页面。

您可以通过在该页面上创建一个前缀为wordpress_的cookie来利用这个漏洞,瞧,$_COOKIE将被填充。

JavaScriptdocument.cookie = "wordpress_dummy=dummy; max-age=" + 60*60*24*99

PHPsetcookie('wordpress_dummy', 'dummy', strtotime('+99 days'));

顺便说一下,只在需要的页面上使用它。否则,您的网站将大大减慢速度,因为不会缓存任何内容。还要负责任地设置cookie过期时间。