我遇到的问题是PHP是PHP。在Localhost上,cookie似乎没有被删除,用户仍然通过WWW.somesite.com登录,但注销在SOMESITE.com上有效。
这是处理正在设置/取消设置的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);
}
关于我做错的任何想法都会非常有帮助。
答案 0 :(得分:0)
确保您在此功能中的$ host计算结果与您删除Cookie的位置相同。
如果您希望在server.com
和www.server.com
之间共享Cookie,请确保$host
以.
开头,例如.server.com