Gre*_*een 5 php session session-cookies
session_destroy()功能有什么作用?要删除全局数组$ _SESSION中的所有会话变量,我必须使用session_unset().要从客户端浏览器中删除会话(删除会话ID和名称),我必须取消设置cookie:
unset($_COOKIES[session_id()]);
unset($_COOKIES[session_name()]);
Run Code Online (Sandbox Code Playgroud)
为什么session_destroy()需要功能?
Ano*_*ode 11
session_destroy()结束整个会话,这意味着它将从PHP的会话存储中删除,不能再次使用.如果您只取消设置会话变量和cookie,则会话仍然是活动服务器端,如果再次设置某些会话变量并且具有原始会话ID的cookie再次发送到客户端,则可能会被回收.
换句话说:会话基本上由存储在Web服务器某处的秘密ID以及注册到该会话的会话变量组成.会话ID被发送到客户端(通常作为cookie),因此客户端可以在以后的请求中被识别为会话的"所有者".假设已经创建了一个会话并且已经注册了变量,这里概述了这些函数的作用:
session_start()导入属于客户端从会话注册表发送到$_SESSION阵列的会话ID的所有会话变量session_unset()或调用unset()的$_SESSION变量将清除注册到当前会话的所有变量,但它不会清除会议本身session_destroy() 唯一的功能是从会话注册表中实际清除会话,从字面上"破坏"会话虽然session_destroy()将取消注册所有会话变量,但它不会清除$_SESSION当前正在执行的脚本中的数组,因此取消设置会话变量以防止错误和安全问题仍然是个好主意.
在相关的说明中,PHP手册建议不要使用session_unset()而是取消设置键$_SESSION:
如果
$_SESSION(或者$HTTP_SESSION_VARS对于PHP 4.0.6或更低版本)使用,则用于unset()取消注册会话变量,即unset($_SESSION['varname']);.