从php.net获得它,但是我不确定这是每个人如何破坏所有会话的方式吗?
// Unset all Sessions $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() -42000, '/'); } session_destroy();
代码会破坏所有会话吗?这是最常见的方式吗?你们如何破坏php会话?
哦,对了,那是session_name()什么?所有会话名称?例如$_SESSION['var1'],$_SESSION['var2']......?
session_name()
$_SESSION['var1']
$_SESSION['var2']
我不需要再使用unset($_SESSION['var1']);了吗?
unset($_SESSION['var1']);
session_destroy()和之间有什么区别unset($_SESSION[])?
session_destroy()
unset($_SESSION[])
首先,您应该知道什么是会话:您可以将会话视为与随机标识符(会话ID)相关联的服务器端数据容器。该会话ID需要由客户端提供,以便服务器可以将与该会话ID(并因此与该会话)关联的数据加载到$_SESSION变量中。该$_SESSION变量中的所有内容也称为当前活动会话的 会话变量 。
$_SESSION
现在对您的问题:
提供的代码仅删除当前会话的会话数据。该$_SESSION=array();语句将简单地重置会话变量,$_SESSION以便将来对该会话变量的访问$_SESSION将失败。但是会话容器本身尚未删除。可以通过致电来完成session_destroy。
$_SESSION=array();
session_destroy
哦是的,顺便说一句,session_name()是什么?所有会话名称?例如$ _SESSION [‘var1’],$ _ SESSION [‘var2’] …?
该会话名称只是用来识别一个Cookie,URL查询或通过POST参数传递会话ID参数。PHP的默认值为PHPSESSID。但是您可以将其更改为所需的任何内容。
PHPSESSID
我不需要使用unset($ _ SESSION [‘var1’]); 还有吗???
否。首字母$_SESSION = array();删除所有会话数据。
$_SESSION = array();
使用session_destroy和unset($ _ SESSION [])有什么区别?
session_destroy将删除整个会话容器,而unset重置$_SESSION变量或仅删除当前运行时的会话数据。
unset