当我尝试使用以下方式登出时:session_destroy();
它起作用了。但是问题是,我还有一个带有会话的购物车。所以session_destroy();
对我来说不是一个选择。当我使用该unset($_SESSION['username']);
功能时,它似乎可以正常工作。但是,当我返回到帐户页面时,我刚刚重新登录。我的注销脚本如下所示:
<?php
unset($_SESSION['username']);
unset($_SESSION['id']);
header('Location: index?page=home');
?>
我检查了用户的这段代码是否已登录。(有人可以告诉我还是这样安全?)
<?php if (!$_SESSION['username'] && !$_SESSION['id']){ ?>
<?php header ('Location: index?page=home'); ?>
<?php } ?>
这是您需要的信息(我认为)。如果您需要更多,请问我。
因此,我的简短版本中的问题是:如何在不破坏购物车会话的情况下破坏会话?
谢谢你们。
你可以session_write_close()
在这里尝试吗?有一个PHP配置,可以在脚本结束后自动为您执行此操作,但是您的PHP可能配置不同。
<?php
unset($_SESSION['username']);
unset($_SESSION['id']);
session_write_close();
header('Location: index?page=home');
?>
为了进行调试,您可以尝试以下操作:
<?php
echo $_SESSION['id'].' - '.$_SESSION['username'];
if(!$_SESSION['username'] && !$_SESSION['id']){
header ('Location: index?page=home');
}
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句