这可能是这个问题的续集:PHP Sessions across sub domains
我有一个成功的多域会话,只需使用它:
session_set_cookie_params(0, '/', '.domain.com');
session_start();
此代码运行正常,如果我访问domain.com或subdomain.domain.com,我会看到SESSION vars没有问题,一切正常:)
问题是当我尝试从domain.com注销时。我已尝试注销所有内容,甚至所有这些,如PHP session_destroy()手册中所述:
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
1)session.use_cookies为ON,并在服务器中正确设置 2)该代码会杀死主域中的会话,但不会杀死subdomain.domain.com中的会话 3)$ params显示正确的信息:
Array
(
[lifetime] => 0
[path] => /
[domain] => .domain.com
[secure] =>
[httponly] =>
)
但它不起作用。当我访问subdomain.domain.com时,会话仍然存在。
请帮忙! :)
谢谢!