php - 我们可以为普通用户和管理员用户设置两个不同的会话名称吗?
问题描述
这是针对普通用户的。
if($pass) {
/*password is correct*/
session_start();
$_SESSION['username'] = $username;
}
我有不同的管理员登录页面,这行得通吗?
if($pass) {
/*password is correct*/
session_start();
$_SESSION['admin_username'] = $username;
}
有一个普通的仪表板和管理仪表板。因此,如果会话是 admin_username,那么用户应该被重定向到管理仪表板,如果会话是用户名,那么用户应该被引导到普通仪表板。这种方法容易出现任何错误或冲突吗?
我也可以有一个会话名称检查会话是否不为空,如果 $_SESSION['username'] 等于管理员的用户名,则重定向到管理员仪表板,否则为普通用户。
哪种方法更好?
解决方案
我建议您将用户名与角色分开。您可以使用管理指示器添加单独的会话参数
if($pass) {
/*password is correct*/
session_start();
$_SESSION['username'] = $username;
$_SESSION['isAdmin'] = true;
}
但是您应该记住,当您想要添加第三个角色时,您应该将角色保存在会话中。
if($pass) {
/*password is correct*/
session_start();
$_SESSION['username'] = $username;
$_SESSION['role'] = "Admin"; // Or "Moderator" or "User"
}
推荐阅读
- go - 从 url 存储图像时如何编写 RIFF 块头?
- php - 每当我重新加载页面时,仍会设置取消设置 PHP 会话变量
- moshi - Moshi toJSON 按字母顺序排序?
- php - TCPDF dejavusans 字体问题 - 无法打开带有文本的文件
- mysql - 考勤监控系统RFID
- java - 获取 org.postgresql.util.PSQLException:连接尝试失败。连接 Heroku 时出错
- php - 我需要做些什么来将我当前使用 cron 的系统转换为使用 RabbitMQ?
- python - 如何下载flask生成的flask html页面?
- javascript - 循环播放音频文件数组时立即播放的音频文件
- php - 四个问题中只选择了一个单选按钮