我的 cookie 仅在它们设置的 PHP 页面上可用,这正常吗?

Posted

技术标签:

【中文标题】我的 cookie 仅在它们设置的 PHP 页面上可用,这正常吗?【英文标题】:My cookies are only available on PHP pages they are set on, is this normal? 【发布时间】:2012-03-29 13:48:24 【问题描述】:

除了设置它们的页面之外,我无法从任何页面访问 cookie。我查看了不同页面上的print_r($_COOKIE),页面之间唯一的共同变量是$_COOKIE['phpSESSID']

我正在本地 XAMPP 测试服务器上进行开发。是否有我应该在 PHP.ini 上更改的设置,或者这是 cookie 的正常行为?抱歉,我对这些东西有点陌生,我的印象是 cookie 可以在整个网站范围内访问。

我正在设置像这样的 cookie:

setcookie("user", "Dave Schmave", time()+60*60*24*120);

任何帮助将不胜感激。谢谢

【问题讨论】:

您可能会发现 $cookie->setPath($path) 很有帮助,如在 this standalone library 中找到的那样。 【参考方案1】:

尝试将 cookie 路径设置为根目录:

setcookie("user", "Dave Schmave", time()+60*60*24*120, '/');

是否也在同一个域中?通过 HTTPS 访问也会影响您的 cookie。

【讨论】:

这似乎做到了。这是可以在全局服务器设置上更改的吗?我的 php.ini 文件 session.cookie_path 设置为“/”,但我想我仍然需要在 setcookie() 中声明根。感谢您的帮助1 可能有什么东西覆盖了这个设置。尝试在脚本的位置放置一个 phpinfo() 并检查设置:) 啊,我误读了 API,在这里使用了我的域 'domain.com' 而不是路径。 这让我摆脱了一段非常沮丧的时光。很好的答案,正是我在寻找 +1

以上是关于我的 cookie 仅在它们设置的 PHP 页面上可用,这正常吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 cookie 设置没有被应用?

php setcookie中path和domain怎么设置

SameSite cookie 被阻止

如何设置具有过期时间的 php cookie 以及如果 cookie 存在如何将用户重定向到另一个页面 [关闭]

php中的cookie用法

cookie设置的PHP头修改解决方案[重复]