【发布时间】:2013-09-03 11:09:15
【问题描述】:
?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() 和 unset($_SESSION['user']) 一样吗?
-
这里来自php.net/manual/en/function.session-destroy.php的链接说,为了完全终止会话,比如注销用户,还必须取消设置会话ID。
-
在这种情况下,会话ID是user_name?
-
@HamDlink:不,会话 ID 不是会话变量,会话 ID 是实际会话的属性。会话具有:1.) 名称 php.net/session_name,2.) id php.net/session_id 和 3.) 所有会话变量 php.net/$_SESSION。