我做了一个包装器来管理我在 Php 中的用户会话,我想添加一个破坏会话的函数,这是我的做法:
<?php
class SessionManager
{
.
.
.
static function destroy()
{
session_destroy();
}
}
?>
当注销用户时,我需要销毁它的会话,所以我destroy()
在logout.php 中调用这样的函数:
<?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
)的令牌值,这意味着会话没有被破坏。
ps:我之前用相同的代码发过一个帖子,但是现在我用相同的代码遇到了一个新问题。
session_destroy 不会取消设置 $_SESSION 变量,它会破坏 $_SESSION 变量已经在同一页面上设置的会话。你将加载的下一个页面,它不会被设置,因为会话被破坏了。
如果出于某种原因您想在同一页面上取消设置变量,请执行类似 unset($_SESSION['cook']); 的操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句