你需要在session_destroy之前使用session_unset吗?

时间:2017-08-25 13:47:05

标签: php session

根据w3schools(https://www.w3schools.com/php/php_sessions.asp)删除会话(注销),你应该这样做:

session_unset(); 
session_destroy();

但是我不明白为什么你必须先取消所有会话变量,不仅仅session_destroy就够了?

1 个答案:

答案 0 :(得分:1)

您可以在官方文档(https://php.net)上找到有关session_destroy的以下信息:

  

它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie   来源: http://php.net/manual/en/function.session-destroy.php

session_unset的文档说明如下:

  

session_unset()函数释放当前注册的所有会话变量   来源: http://php.net/manual/en/function.session-unset.php

因此,使用这些信息,您必须调用以下内容来完全清除会话:

session_unset();
session_destroy();

您不想清除整个会话?

如果您使用系统登录并注销用户,您还可以使用unset删除会话的特定字段:

unset($_SESSION['username']);
unset($_SESSION['other_user_data']);

在这种情况下,您只会删除用户的数据,而不会删除与用户无关的应用程序其他部分的数据。