我正在尝试检索我使用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");
使其更易于访问,就像其他论坛所提到的那样。
我曾经在header.php文件中运行此代码,设置并使用php获取cookie,然后在找到wordpress后将其移动到functions.php将会破坏标题,这可能会搞砸了。这仍然无法解决问题。
任何建议都会受到赞赏吗?
答案 0 :(得分:0)
如果您正在使用WP Engine,则由于其缓存系统,很可能$_COOKIE
将是一个空数组。缓存的例外是带有包含wordpress_
的cookie的页面。
您可以通过在该页面上创建以wordpress_
为前缀的cookie来使用此漏洞,瞧瞧,$_COOKIE
将会被填充。
JavaScript
document.cookie = "wordpress_dummy=dummy; max-age=" + 60*60*24*99
PHP
setcookie('wordpress_dummy', 'dummy', strtotime('+99 days'));
顺便说一句,仅在需要它们的页面上使用它。否则,您的站点将大大减慢速度,因为不会缓存任何内容。还应负责任地设置cookie过期时间。