饼干被设置两次

Sar*_*med 2 php cookies

为什么我的网站会设置两次Cookie?为"www.example.com"存储一组cookie,并为"example.com"存储相同的一组.

Mic*_*ski 5

最有可能的是,您允许通过两个域名访问您的网站example.com,www.example.com并且您尚未指定应为其设置Cookie的域名.在第五个参数setcookie()指定域,因此它设置为example.com只.这也将使其可用于更高的域www.example.com.

setcookie('key', 'value', time(), '/path', 'example.com');
Run Code Online (Sandbox Code Playgroud)

通过URL重写,您可以在设置cookie之前强制您站点的所有用户访问这些域中的一个或另一个,但这仅仅是用户体验一致性的解决方案,而不是管理cookie的方法.

来自文档:

Cookie可用的域.将域设置为"www.example.com"将使www子域和更高子域中的cookie可用.可用于较低域名的Cookie(例如"example.com")可用于更高的子域名,例如"www.example.com".仍旧实施已弃用的RFC 2109的旧版浏览器可能需要领先.匹配所有子域.