饼干被设置两次


Cookies being set twice

为什么为我的网站设置了两次cookie?一组 Cookie 存储用于"www.example.com",同一组 Cookie 存储用于"example.com"。

最有可能的是,您允许通过域名example.comwww.example.com访问您的网站,并且您没有指定应为其设置 cookie 的域名。 要setcookie()的第五个参数指定域,因此请将其设置为仅example.com。这也将使其可用于更高的域www.example.com

setcookie('key', 'value', time(), '/path', 'example.com');

通过 URL 重写,您可以在设置 Cookie 之前强制您网站的所有用户访问其中一个域,但这仅仅是用户体验一致性的解决方案,而不是管理 Cookie 的一种方式。

从文档中:

Cookie 可用的域。将域设置为"www.example.com"将使 Cookie 在 www 子域和更高级别的子域中可用。可用于较低域(例如"example.com"(的 Cookie 将可用于较高子域(例如"www.example.com"(。仍在实现已弃用的 » RFC 2109 的旧版浏览器可能需要前导 .以匹配所有子域。