PHP会话跨子域销毁
这可能是这个问题的续集: 我通过以下方式成功地完成了多域会话:PHP会话跨子域销毁,php,session,cookies,Php,Session,Cookies,这可能是这个问题的续集: 我通过以下方式成功地完成了多域会话: session_set_cookie_params(0, '/', '.domain.com'); session_start(); 问题是当我试图从domain.com注销时。我尝试了所有注销的方法,甚至所有这些方法,正如PHPsession\u destroy()manual中所建议的: // Unset all of the session variables. $_SESSION = array(); // If it
session_set_cookie_params(0, '/', '.domain.com');
session_start();
问题是当我试图从domain.com
注销时。我尝试了所有注销的方法,甚至所有这些方法,正如PHPsession\u destroy()
manual中所建议的:
// 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
时,会话仍处于活动状态
我怎么做
谢谢大家! 在您尝试销毁会话之前,是否已查看会话是否已启动
if (!isset($_SESSION)) session_start();
if (isset($_COOKIE['auth_token'])) {
remove_token($_COOKIE['auth_token']);
setcookie("auth_token", "", time()-3600, "/", ".domain.com");
}
session_destroy();
这是我的环境中的工作代码。希望能有帮助
session\u destroy()
不起作用吗?您是从同一域名、根域名(如example.com
、sans子域)还是从“www”子域设置cookie?在会话中使用标志表示有效性并将$\u session[“valid”]=false代码>在$params
中有什么?可以显示转储吗?1)会话_destroy不工作,因为会话是用“setcookie”命令销毁的;2) 首先在domain.com的“父域”中设置会话;3) 马里奥,我不明白你的意思;4) 在参数中显示“/”作为路径,.domain.com作为域,没有任何线索:P