我正在尝试正确注销管理员用户。这里是我的功能:(PHP)如何正确销毁会话cookie?
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删除功能有什么问题?
好的,这是有道理的,但为什么我仍然能够直接访问管理页面,即使我已经销毁会议? – sepiroth 2010-02-11 02:12:29
@hatorade,检查我编辑的答案。 – 2010-02-11 02:14:00
没想到我认为我想通了 - 我没有在我的注销页面上呼叫session_start()(注销文本链接到一个注销页面,该页面调用了我的上述功能) – sepiroth 2010-02-11 02:15:03