2015-01-09 87 views
1

我们有一个网站www.example.com使用一些cookies。 而且我们有这个网站的这样的一个子文件夹的副本:域名中的Cookie冲突 - 子域名

www.example.com:8000/test/ 

该子文件夹的副本进行测试。

我们在域中创建这样的饼干(例如)和子文件夹:

setcookie("name", "value", time() + 1800); 

当我们浏览到域和子文件夹不同的选项卡到同一个导航仪,我们有饼干之间的冲突,因为我们两个都有相同的cookie。

我认为我们可以在子文件夹中做到这一点:

setcookie("name", "value", time() + 1800, "test", "www.example.com:8000"); 

据我所知,这只是创建子文件夹中的cookies和问题的一个部分将得到解决。 但据我所知,当我们在域的根目录中创建一个cookie时,这个cookie也在子文件夹中可用...然后问题会持续...

任何人都知道我该如何定义一个cookie仅用于域的根文件夹?

非常感谢。

回答

1

不能

Cookies是紧密联系在一起的网站连接。一个域是特定的。这就是为什么他们是伟大而强大的。任何定义为的cookie都可以在该域的任何页面访问www.example.com。但是在www.blog.example.com上,该cookie将不可访问,因为子域在技术上是独立的域/网站。文件夹和子目录不是。

使用子文件夹可让您将cookie设置为更深的网站部分。但是,您不能将cookie仅限制为root用户。

如何帮助您

使用你的cookies不同的名字。

+0

更改cookie的名称!绝对是最简单的解决方案。在子域名上有冲突:.example.com和.sub.example.com,后者从前者获取cookie。 – newms87