我有一个奇怪的问题。我有一个脚本,它会为每个访问过的页面添加一个数组,然后将其放入cookie中。
然后在另一页上,它将显示cookie中的数字列表。
它在我的域名(https)上与WWW完美配合:https://www.mydomain.com
问题是没有WWW(https://mydomain.com)它将无法运行。似乎有两个不同的Cookie:一个用于https://mydomain.com,另一个用于https://www.mydomain.com
我还想分享子域名的Cookie而不用https
所以基本上它应该是以下的SAME cookie:
https://www.domain.com
https://domain.com
http://subdomain.domain.com
我该怎么做?
目前,我使用:
setcookie("viewed_articles", serialize($lastviewedarticles));
答案 0 :(得分:6)
这是正确的行为。设置Cookie时,您需要将其设置为.domain.com
,它将适用于domain.com
中包含的所有域。
setcookie("viewed_articles", serialize($lastviewedarticles), time()+60*60*24*30, '/', '.domain.com');
此处的代码会将Cookie设置为30天,并将整个domain.com
答案 1 :(得分:0)
有关setcookie的信息,请参阅php-docs。您可以在过期的值之后添加域和路径。
将路径设置为/
,将路径设置为.mydomain.com
,以便为您的网站设置全局Cookie。
答案 2 :(得分:0)
在cookie中设置域,并且还设置仅限http的值以避免可能的xss
setcookie("viewed_articles", serialize($lastviewedarticles), time()+3600, '/', '.yourdomain.com',0,1);