我以前使用这三行来删除 session :
session_start();
session_regenerate_id();
session_destroy();
是 session_destroy()
关闭 session ,还是我必须手动关闭它?
session_start();
session_regenerate_id();
$_SESSION = array();
session_write_close();
最佳答案
session_destroy
删除存储在媒体(文件、数据库等)中的 session 数据,但不删除 $_SESSION
数组或 cookie,您必须手动完成,其中包括 PHPSESSID
cookie。
我通常用这样的方式删除 session :
foreach($_SESSION as $key => $val)
unset($_SESSION[$key]);
foreach($_COOKIE as $key => $val)
setcookie($key, '', 1);
session_destroy();
顺便说一句,当您调用 session_regenerate_id()
时, session 文件将复制到新文件,但不会删除旧文件,如果您想删除旧数据 session 文件(可能您想要),您必须指定它与 session_regenerate_id(TRUE)
。
关于php - 如何正确删除 PHP session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5381277/