Php会话没有被破坏

时间:2017-03-31 23:24:47

标签: php

我做了一个包装来管理我在Php中的用户会话,我想添加一个破坏会话的函数,这是我的做法:

<?php
class SessionManager
{
          .
          .
          .
static function destroy()
{
    session_destroy();
}
}
?>

当我退出用户时,我需要销毁其会话,因此我在 logout.php 中调用destroy()函数:

<?php
include('SessionManager.php');
$mySess = new SessionManager();
$session = $mySess -> sessionStart('InstallationName'); // create/start a new session or start the existent session
$mySess -> destroy();
echo $_SESSION['cook'];
?>

但问题是,在执行此代码时,它仍会显示令牌值$_SESSION['cook'](类似t2utt3uejvamu1kq623vl29pd2),这意味着会话不会被破坏。

p.s:我之前使用相同的代码发了帖子,但现在我遇到了一个新问题,使用相同的代码。

1 个答案:

答案 0 :(得分:0)

session_destroy不会取消设置$ _SESSION变量,它会破坏会话$ _SESSION变量已在同一页面上设置。您将加载的下一页,因为会话被销毁,所以不会设置它。

如果由于某种原因你想在同一页面上取消设置变量,那就做一些像unset($ _ SESSION ['cook']);

相关问题