2

清除登录会话的区别和最安全的方法是PHP什么?log out基本上会在用户单击我的应用程序时调用它。

我看到:

 session_destroy()
 session_unset()

或者干脆做:

unset($_SESSION['my_key_1']);
unset($_SESSION['my_key_2']);

什么是最好的方法?

4

3 回答 3

12

session_destroy正在删除整个会话。

session_unset从会话中删除一个变量 - 会话仍然存在。只有数据被截断。

所以,如果你想释放内存session_destroy是最好的。

于 2012-11-09T06:50:49.247 回答
1

我知道的最好的解决方案是使用session_regenerate_id(true);

这将删除当前会话数据并重新生成会话 ID。

分配一个新的会话 ID 是一个好主意,因为它有助于将用户视为一个全新的用户(以防您的代码中的某些内容依赖于会话 ID)。

于 2012-11-09T06:51:30.023 回答
1

session_unset()函数释放当前注册的所有会话变量。意思是,它将这样做:

unset($_SESSION);
$_SESSION = array();

session_destroy()功能将使整个会话无效!会议没有举行。

于 2012-11-09T06:52:10.723 回答