为什么我们在执行 LOGOUT 时需要同时需要未设置和会话销毁.php


Why do we need both, unset and session destroy when we are doing LOGOUT.php?

?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((? 我通过删除其中任何一个进行测试,结果仍然相同。 用户仍注销。 请有人向我解释,非常感谢。

session_unset(( 仅从会话中删除变量 - 会话仍然存在 - 仅截断数据。但是session_unset((是一个过时的PHP函数。我们可以将会话设置为空数组。

$_SESSION = array(); 

session_destroy(( 将删除整个会话。并不总是需要同时执行这两项操作。但建议同时执行这两项操作以确保额外的安全性。

unset()删除变量而不是会话。

session_destory()销毁会话。

session_destroy(( 销毁与当前关联的所有数据 会期。它不会取消设置任何与 会话,或取消设置会话 Cookie。

但是,我建议您执行以下操作:

$_SESSION = array();

。而不是unset();