我之前使用这三行来删除会话:
session_start();
session_regenerate_id();
session_destroy();
Run Code Online (Sandbox Code Playgroud)
是否session_destroy()关闭会话,或者说我必须手动关闭它?
session_start();
session_regenerate_id();
$_SESSION = array();
session_write_close();
Run Code Online (Sandbox Code Playgroud)
session_destroy删除存储的媒体(文件,数据库等)中的会话数据,但不删除$_SESSION数组或cookie,您必须手动执行,包括PHPSESSIDcookie.
我通常会用以下内容删除会话:
foreach($_SESSION as $key => $val)
unset($_SESSION[$key]);
foreach($_COOKIE as $key => $val)
setcookie($key, '', 1);
session_destroy();
Run Code Online (Sandbox Code Playgroud)
BTW当你调用session_regenerate_id()会话的文件被复制到新文件但旧的文件没有被删除,如果你想删除旧数据会话的文件(可能你想要),你必须用它来指定session_regenerate_id(TRUE).