取消设置一组 PHP 会话

unset a group of PHP sessions

我最近 运行 遇到了一个 PHP $_SESSION 变量的 st运行ge 问题。

renewal-check.php 我们从数据库中检索用户信息并像这样保存它:

$_SESSION['parent']['mailing_address'];
$_SESSION['parent']['home_phone'];
$_SESSION['parent']['cell_phone'];

然后要求他们输入其中一个值以确认他们的身份。如果他们无法确认,$_SESSION['parent'] 就是 unset()unset($_SESSION['parent']);

不过,运行echo $_SESSION['parent']['somevalue']还是给出了数据。如果 unset() 不工作,我如何取消设置 $_SESSION['parent'] 下的所有会话变量?

示例代码:

page1.php

session_start();
$_SESSION['parent']['mailing_address'] = "somevalue";
$_SESSION['parent']['home_phone'] = "somevalue";
$_SESSION['parent']['cell_phone'] = "somevalue";

page2.php

session_start();
unset($_SESSION['parent']);
echo $_SESSION['parent']['cell_phone'];

Page2.php 仍然输出数据,即使在取消设置 $_SESSION['parent'] 之后也是如此。

unset($_SESSION['var']) 是正确的函数。

您是否使用 session_start() 初始化了会话?

如果有,则可能是您的 PHP 安装有问题。

尝试重新实例化它

$_SESSION['parent'] = array();