首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取cookie和cookie域

读取cookie和cookie域
EN

Stack Overflow用户
提问于 2011-09-13 20:41:11
回答 4查看 2.6K关注 0票数 1

我有两个服务器:实时服务器(mydomain.com)和QA服务器(qa.mydomain.com)。当我设置cookie时,我将域分别设置为".mydomain.com“和".qa.mydomain.com”。其中一个称为"session_id“的cookies用于身份验证和登录。很明显,一个域的cookie在另一个域上不起作用。但是,当我在域名前面加上点时,PHP有时会读取QA服务器上的".domain.com“cookie,结果导致我无法登录。

有没有办法让PHP读取正确的cookie?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-13 20:46:53

请参阅http://se2.php.net/setcookie

cookie可用于的域。要使cookie在example.com的所有子域(包括example.com本身)上都可用,则需要将其设置为“.example.com”。虽然有些浏览器会接受不带首字母.的cookie,但RFC2109要求包含它。将域设置为“www.example.com”或“.www.example.com”将使cookie仅在www子域中可用。

你可以说:

很明显,一个域的cookie在另一个域上不起作用。

.mydomain.com 匹配所有子域时。我会去掉那个圆点。

票数 1
EN

Stack Overflow用户

发布于 2011-09-13 20:47:40

加上点前缀意味着它对所有子域也有效。因此,.mydomain.com cookie对qa.mydomain.com也有效。

现在,不仅仅是PHP读取cookie,浏览器也会根据cookie的有效域来发送cookie。

由于您具体讨论的是会话cookie,因此可能需要考虑使用命名会话。据我所知,cookie的名称中也使用了会话的名称。这意味着您的活动环境和测试环境会有一个不同的会话名称。

否则删除圆点也能起到作用;但我猜您确实希望它适用于www.mydomain.com,所以我不认为这是一个解决方案;)。

票数 2
EN

Stack Overflow用户

发布于 2011-09-13 20:48:10

PHP读取浏览器发送的所有cookie。由于每个.qa.domain.com主机也是一个.domain.com主机,因此获取所有cookie是正常的。

您需要更改域名或更改PHP代码,以便能够识别应该忽略的cookie和不应该忽略的cookie。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7402028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档