?php session_start();
if(isset($_SESSION["user_name"]))
if($_GET["destroy"]=="yes")
{
session_destroy();
unset($_SESSION["user_name"]);
}
if(!isset($_SESSION["user_name"]) &&
$_GET["user"]!="")
$_SESSION["user_name"] = $_GET["user"];
?>
我在想,为什么我们需要unset和session_destroy()?我通过删除其中一个进行测试,结果仍然相同。用户仍然注销。请有人向我解释,非常感谢。
答案 0 :(得分:0)
unset()
删除不是会话的变量。
session_destory()
会破坏会话。
session_destroy()会销毁与当前关联的所有数据 会话。它不会取消任何与之相关的全局变量 会话,或取消设置会话cookie。
但是,我建议您这样做:
$_SESSION = array();
...而不是unset();
答案 1 :(得分:0)
session_unset()只删除会话中的变量 - 会话仍然存在 - 只截断数据。但是session_unset()是一个过时的PHP函数。我们可以将会话设置为空数组。
$_SESSION = array();
session_destroy()将删除整个会话。 并不总是需要两者兼顾。但建议两者都是为了确保额外的安全性。