即使会话关闭,PHPSID 仍然可用

时间:2021-06-16 15:56:12

标签: php session

在我的页面中,我创建了一个会话,该会话正确可用:

print_r($_SESSION);   -->  Array ( [favcolor] => blue [animal] => dog [time] => 1623858503 )
print_r($_COOKIE);    --> Array ( [PHPSESSID] => 844a8b3a5dd0365cc80c4802f7a3a6cb ) 

然后,我使用以下代码关闭会话:

<?php
session_start();
$_SESSION = array();
unset($_SESSION);
?>

现在,会话似乎已关闭,因为变量未设置,但 PHPSID 仍然存在:

print_r($_SESSION); --> 数组 ( ) 打印_r($_COOKIE); --> 数组([PHPSESSID] => 844a8b3a5dd0365cc80c4802f7a3a6cb)


the session should be closed so the SID should be removed as well?

1 个答案:

答案 0 :(得分:0)

取消会话只会删除您维护的有关该用户的内部数据,这些数据存储在您的服务器中。会话的 ID 仍然保存在用户的 cookie 中。如果你想删除它,你可以手动进行

setcookie('PHPSESSID', '', time() - 86400, '/');

此外,在删除会话时,您应该使用函数 session_destroy 而不是取消设置数组。

相关问题