当我尝试使用以下方法注销时:session_destroy();
然后它就起作用了。但问题是,我还有一个带有 session 的购物车。所以 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 的情况下破坏我的 session ?
谢谢大家。
最佳答案
你可以在这里尝试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');
}
?>
关于PHP session 未设置或 PHP session 销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302775/