如果没有WWW或子域,php cookies不起作用

时间:2013-03-07 19:38:13

标签: php cookies https subdomain

我有一个奇怪的问题。我有一个脚本,它会为每个访问过的页面添加一个数组,然后将其放入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));

3 个答案:

答案 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);