某些应用程序,而不是我写的,而不是在PHP,创建域“www.domain.com”。

一个cookie

我试图取代该cookie。因此,在PHP我所做的:

setcookie('mycookie','mydata',time() + 2*7*24*60*60,'/','www.domain.com', false);

然而所得到的cookie被用于域中创建:“.www.domain.com”,注意点“”超前的结构域组成。

所以它不会取代它,它创建另一个饼干。 我该怎么办?

有帮助吗?

解决方案

这个问题也是在这里不客气: http://php.net/manual/en/function.setcookie.php

由 “扎哈” 见注释:If you want to restrict the cookie to a single host, supply the domain parameter as an empty string

您也可以尝试“.domain.com”作为域名。尾随点会允许对“domain.com”所有子一个cookie,并可能覆盖的“www。” - 饼干,但我会用上述溶液先去

其他提示

如果您指定域,你应该遵循RFC 2109和前面加上一个点域;否则客户端将这样做。但是,如果你不指定域所有,该客户端将请求的域名。

尝试创建其他几个Cookie与相同的名字,但不同的域。例如:

setcookie('mycookie','mydata1',time() + 2*7*24*60*60,'/','www.domain.com', false);
setcookie('mycookie','mydata2',time() + 2*7*24*60*60,'/','www.domain.com', false);
setcookie('mycookie_top','mydata1',time() + 2*7*24*60*60,'/','domain.com', false);
setcookie('mycookie_top','mydata2',time() + 2*7*24*60*60,'/','domain.com', false);

然后检查由萤火虫这些命令创建的cookie中。如果你一直得到双重的cookie,那么这可能是在PHP的错误。另外,尽量设置cookie的javascript代码,看看你是否仍然得到了同样的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top