我做了一个包装来管理我在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:我之前使用相同的代码发了帖子,但现在我遇到了一个新问题,使用相同的代码。
答案 0 :(得分:0)
session_destroy不会取消设置$ _SESSION变量,它会破坏会话$ _SESSION变量已在同一页面上设置。您将加载的下一页,因为会话被销毁,所以不会设置它。
如果由于某种原因你想在同一页面上取消设置变量,那就做一些像unset($ _ SESSION ['cook']);