在PHP中cookie不会无法在所有域中取消设置
问题描述:
我在使用Cookie时遇到了一些问题,即PHP。在本地主机上,Cookie似乎不会被删除,用户仍然通过WWW.somesite.com登录,但注销在SOMESITE.com上运行。在PHP中cookie不会无法在所有域中取消设置
这是与所设置的Cookie打交道的代码/取消设置:
public static function cookie($name, $value){
$host = apache_request_headers();
$host = $host['Host'];
$host = explode('.', $host);
$count = count($host);
if($count >= 2) {
$host = ($host[0] == 'test') ? 'test.' . $host[$count - 2] . "." . $host[$count - 1] : $host[$count - 2] . "." . $host[$count - 1];
} else {
$host = $host[0];
}
//$host = explode(':', $host);
//$host = $host[0];
//Core::prnt($host);
if($value === NULL) {
setcookie($name, $value, time() - Options::getSetting('U_SESSION_TIMEOUT'), '/', $host);
Core::prnt($_COOKIE);
return;
}
setcookie($name, $value, time() + Options::getSetting('U_SESSION_TIMEOUT'), '/', $host);
}
任何想法,我做错了会非常有帮助。
答
请确保您在此功能中的$ host具有相同的计算,并且无论您在何处擦除Cookie。
如果你想成为server.com
和www.server.com
之间共享饼干,确保$host
开始于.
,例如.server.com
确保您在此函数中''host'具有相同的计算,并且无论您在何处擦除cookie。如果你想在'server.com'和'www.server.com'之间共享cookies,请确保'$ host'以'.'开始,例如。 '.server.com' – 2013-05-03 17:21:48
如果你让这个答案我会接受它。这似乎是'。'的错。 – DavidScherer 2013-05-03 18:07:54