php - 为什么我的 session 仍然存在?

标签 php

我一定是真的很傻,因为现在似乎很明显的事情让我完全困惑。

我有一个 session ...

$_SESSION['handbag_id'];

在某个时候,我需要完全终止这个 session 。

// at the start of the page
session_start();

// elsewhere on the same page
unset($_SESSION);
session_destroy();

然而,我可以转到另一个页面,然后做一个

echo $_SESSION['handbag_id'];

而且我仍然拥有与以前相同的 handbag_id。

我错过了什么?是我不明白这是如何工作的,还是我有一些服务器设置支配着我破坏其值(value)的愿望?

最佳答案

session 函数可能非常棘手。要完全终止 session ,您需要为 $_SESSION 超全局分配一个新值。否则,您所做的就是从当前脚本中卸载 session 数据。这应该有效:

session_start();
$_SESSION = array();
session_write_close(); // Not required

如果您还需要打开一个全新的 session ,您可以这样做:

session_regenerate_id(FALSE);
$tmp = session_id();
session_destroy();
session_id($tmp);
unset($tmp);
session_start();

更新:

您可能会发现一个有用的相关问题:Close session and start a new one

关于php - 为什么我的 session 仍然存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921231/

相关文章:

PHP 在键值对中拆分字符串

php - postman API 不工作

PHP/MySQL 仅在用户单击按钮时更新

php - MySQL无法执行

php - 循环显示星级

php - 按字母顺序对数组值进行排序

php - Mysql 查询不分配/返回变量?

php - 在 PHP 中从一维数组创建二维矩阵的最有效方法

php - 当我使用不存在的路由访问类时,如何在 codeIgniter 中设置默认函数?

php - 回显两个表的结果