我正在尝试正确注销管理员用户。这是我的功能:
function logout()
{
$_SESSION = array(); //destroy all of the session variables
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
}
基本上,一旦我验证了密码,我就会将会话设置为有效(总共只有 1 个用户)。现在,当管理员点击注销时,我想销毁当前会话,并销毁 cookie,这样他们就不能使用浏览器中存储的会话 cookie 返回管理页面。但我的代码不起作用。我点击注销,然后我可以直接导航回管理页面。然而,如果我删除我的cookie,功能就完美了。那么这里的cookie删除功能有什么问题吗?
如果你真的想涵盖所有基础,请尝试这样做:
setcookie (session_id(), "", time() - 3600);
session_destroy();
session_write_close();
这应该可以防止在 PHP 执行的其余部分中进一步访问会话数据。浏览器可能仍会显示正在设置的 cookie,但 $_SESSION super 将为空白
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)