我按照以下命令启动会话:
session_start();
当用户登录时,我在$_SESSION
中保存该用户的信息
使用以下代码:
$_SESSION["logged_in_user"]=$username;
$_SESSION["logged_in_status"]="logged in";
$_SESSION["logged_in_business_id"]=$business_id;
$_SESSION["logged_in_business"]=$business_name;
当用户注销时,我执行以下命令来清除$_SESSION
:
setcookie("PHPSESSID", "", time()-3600, "/" );
$_SESSION=array();
session_destroy();
session_write_close();
现在,当我在注销后和登录前检查$_SESSION
时,结果是一个空数组(),这正是它应该是的。但是,只要我登录$_SESSION
,我不仅会显示我保存在其中的信息,还会显示填充键的空值,例如:
Array(
[logged_in_user] => aristocraticmasterminder
[logged_in_status] => logged in
[logged_in_business_id] => us-000000001
[logged_in_business] => Microsoft PLC Limited
[RoleID] =>
[RoleName] =>
[RoleDuty1] =>
);
这些键没有保存在与它们对应的$_SESSION
中的任何值。我session_start();
位于每个页面的顶部,因此也在session_destroy();
之前的注销页面上我认为这与保存在浏览器上的PHPSESSID cookie有关。如何清除这些空键并保存session_start();
后保存的数据?
答案 0 :(得分:0)
答案 1 :(得分:0)
撤消会话销毁序列。
变化:
$_SESSION=array();
session_destroy();
要:
session_destroy();
$_SESSION=array();