在选择性子域中使用相同的cookie

时间:2012-08-13 10:39:56

标签: php cookies session-cookies

我一直在尝试找到一种在多个子域之间共享Cookie的方法。

设置cookie如:

setcookie('token', base64_encode(serialize($token)), time()+10800, '/', '.mydomain.com');

正是如此。但这里有一个小问题。 这将在所有子域中共享cookie。

我的问题是我在2个子域上设置了其他环境(开发和测试)。 我正在寻找一种在“选择性”子域中共享cookie的方法。即分享一些子域名,而不是分享其他子域名。我不确定是否存在这样的事情。

感谢任何帮助。 感谢。

3 个答案:

答案 0 :(得分:1)

据我所知,您可以使用'.mydomain.com'(正如您所做)在所有子域中共享,或者您必须是特定的,并且只使用一个子域,例如'test.mydomain .com”之间。

你也可以使用一些技巧或解决方法,比如为cookie名称加前缀,然后做逻辑服务器端,但我不确定这是否是你正在寻找的解决方案。

答案 1 :(得分:0)

在思考和研究了很多关于它并阅读上面发布的所有有价值的评论之后,我想对此没有直接的解决方案。

我本可以使用Adrien Hingert提供的解决方案,但这意味着每次用户进入时都需要额外检查。

我想我没有其他选择,只能将我的开发和测试环境移到另一个域。

非常感谢你们所有人的想法。

答案 2 :(得分:0)

属性domain=.example.com专门使所有子域都可以使用cookie。只需删除该属性,cookie就只能由设置它的子域读取。

就这么简单。