这可能是这个问题的续集: PHP Sessions across sub domains
我有一个成功的多域会话,只需使用它:
session_set_cookie_params(0, '/', '.domain.com');
session_start();
问题是当我尝试从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"]
);
}
但它不起作用。当我访问subdomain.domain.com
时,会话仍然存在。
我该怎么做?
谢谢!
答案 0 :(得分:0)
在尝试销毁会话之前,您是否看到会话已启动?
if (!isset($_SESSION)) session_start();
if (isset($_COOKIE['auth_token'])) {
remove_token($_COOKIE['auth_token']);
setcookie("auth_token", "", time()-3600, "/", ".domain.com");
}
session_destroy();
这是我环境中的工作代码。希望能帮助到你。