php - 网站在注销时不记得帐户类型
问题描述
if (isset($_GET['logout'])) {
// session_destroy();
$account_type = $_SESSION['account_type'];
//session_write_close();
unset($_SESSION['success']);
unset($account_type);
header("location: login.php");
}
有 2 种帐户类型:学生和教师。
如果您创建一个学生帐户并注销,然后注册为教师并注销,然后您尝试登录您的学生帐户,它会将您视为教师,因为这是您上次注册的身份。
这种行为反之亦然。
我应该在注销时使用某个会话命令吗?或者还有什么我可以尝试的?
解决方案
为什么unset($account_type);
?据我所知,这没有任何意义。这只是取消设置您创建的局部变量$account_type
,它不会影响您从中复制它的会话值。
如果您希望它忘记会话值,请编写unset($_SESSION["account_type"]);
.
而且,当用户下次登录时,您肯定会根据您数据库中的帐户数据重新设置该值吗?每次有人登录时您都没有一些代码来设置帐户类型吗?
推荐阅读
- c++ - 如何在 if 语句中比较 string* 和 const char*?
- python - 在python中使用explode时如何修复没有匹配元素计数的列
- firebase - 如何连接 Firebase 与 IntelliJ 社区版(Kotlin 控制台应用程序)
- reactjs - 如何使用 makeStore 函数动态确定 redux 工具包中的 RootState 类型
- javascript - 如果单击按钮时特定的“div”是“display:block”,那么父“div”如何淡出?
- bash - 在否定匹配上打印单行
- python - 如何在 Python 中定义需要区分时间和坐标的 R^4 函数?
- python - 在 qgraphicsView 中选择性地添加和删除 XY 线图
- java - 您如何通过仅搜索枢轴的一侧来使快速排序算法的时间复杂度为 O(n)?
- mapbox - 单击两个坐标之间的图层(Mapbox)