使用php设置子域的cookie将不起作用

问题描述:

我试图从“example.com”设置一个cookie,以便它只能访问“site.example.com”。问题是由于某些原因,这不起作用。 例如,下面的代码工作正常:使用php设置子域的cookie将不起作用

setcookie('my_var', "hello", time()+3600, "/", 'example.com'); 

也就是说,来自example.com跑的时候,那么我就可以从site.example.com看到“my_var”的cookie。但是,下面的代码不会设置Cookie:

setcookie('my_var', "hello", time()+3600, "/", 'site.example.com'); 

(同样没有,如果我在前面加上一个点,就像 '.site.example.com')

使用PHP 5.3.8和铬

+0

如果您检查头对你可能会发现你的要求他的cookie ader正在发送,但您的浏览器正在忽略它 – 2012-01-31 15:23:22

+2

您无法为子域设置cookie,只能为相同或超级域设置Cookie。 – Gumbo 2012-01-31 15:24:14

+1

@gumbo:你的意思是我可以从site.example.com设置一个cookie,使其可以访问example.com,但不能以其他方式访问? – periklis 2012-01-31 15:26:19

如浓汤注意到他的意见,你不能设置一个cookie的子域,只为相同或超级域,请参阅Domain set cookie for subdomain

header("Set-Cookie: cookiename=cookievalue; expires=Tue, 12-Jan-2016 23:39:49 GMT; path=/; domain=subdomain.example.net"); 
+1

尽管这段代码可能有助于解决问题,但它并没有解释_why_和/或_how_它是如何回答问题的。提供这种附加背景将显着提高其长期教育价值。请[编辑]您的答案以添加解释,包括适用的限制和假设。 – 2016-08-24 14:03:31