【发布时间】:2019-11-28 04:13:08
【问题描述】:
我正在尝试检索我使用 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 可能会搞砸。这仍然没有解决问题。
有什么建议吗?
【问题讨论】:
-
服务器上是否启用了 Apache
session_cookie_module? -
请记住,如果您通过 PHP 设置 cookie,您应该在发送输出之前进行,因为 cookie 设置在标头中。
-
@mevius - 检查它已启用。
-
@SkarXa - 将其设置为在 'init' 挂钩上运行。
-
@Anand - 目前使用 $_COOKIE 来阅读它,它在我所有其他版本的网站上都可以正常工作,除了我的现场版本