【问题标题】:PHPSID remain available even if the session is closed即使会话关闭,PHPSID 仍然可用
【发布时间】:2021-06-16 15:56:12
【问题描述】:

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

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); --> 数组 ( ) print_r($_COOKIE); --> 数组 ([PHPSESSID] => 844a8b3a5dd0365cc80c4802f7a3a6cb )


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

【问题讨论】:

  • $_COOKIE 包含在请求期间收到的 cookie。这不会通过取消设置会话变量来追溯更改。

标签: php session


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多