我是PHP会话的新手,我正在寻求以下方面的帮助:
我按照以下方式在页面上开始会话,目前按预期工作:
session_start();
// ...
$_SESSION["User"]["login"] = "loggedIn";
$_SESSION["User"]["username"] = $email;
现在,如果用户想要注销,我还想销毁此会话(包括删除其数据并取消设置其变量等)。在搜索有关此问题的指导原则时,我在PHP Manual上发现了以下内容,但我不知道如何应用此功能,而且我不明白ini部分中的行是什么。
有人可以帮我解决这个问题吗?也许还可以提供一些简短的解释?
我目前用于销毁会话的代码:
session_start();
// ...
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$_SESSION["User"]["login"] = "",
$_SESSION["User"]["username"] = ""
);
}
session_destroy();
非常感谢提前。
答案 0 :(得分:1)
你不需要销毁$ _SESSION,PHP垃圾收集器会自动执行此操作。
只需设置$_SESSION["User"]["login"] = false
以及检查用户登录所需的任何位置,请检查
if ($_SESSION["User"]["login"]) {
// do something
} else {
echo "You don't have access";
}
答案 1 :(得分:1)
这是PHP
手册所说的
session_destroy()会销毁与当前关联的所有数据 会话。它不会取消任何与之相关的全局变量 会话,或取消设置会话cookie
您可以使用unset($_SESSION);
OR
$_SESSION = array();
这也会清空Session
数据