我的 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 页面上可用,这正常吗?的主要内容,如果未能解决你的问题,请参考以下文章