php - 如何正确删除 PHP session ?

标签 php session

我以前使用这三行来删除 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/

相关文章:

php - php短语是什么意思?

php - 从数据库生成实体

iphone - 应用程序和 Web 浏览器的公共(public) session

session - 使用 Websockets 时无法在 Spring Controller 中获取 Session

ruby-on-rails - Rails - 为每个打开的选项卡/窗口存储唯一数据

linux - 在开始 session 之前在函数中自定义 linux 终端 PS1 变量

javascript - 异常 : play() failed because the user didn't interact with the document first

php - 经过这么多 div 后中断

java - 如何在 Spring Web 服务中管理 session ?

php - 使用 mysql 和 php 从 HTML 表中删除一条记录