使用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和铬
答
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
如果您检查头对你可能会发现你的要求他的cookie ader正在发送,但您的浏览器正在忽略它 – 2012-01-31 15:23:22
您无法为子域设置cookie,只能为相同或超级域设置Cookie。 – Gumbo 2012-01-31 15:24:14
@gumbo:你的意思是我可以从site.example.com设置一个cookie,使其可以访问example.com,但不能以其他方式访问? – periklis 2012-01-31 15:26:19