Php 在同一会话中管理两种类型的用户帐户

Php 在同一会话中管理两种类型的用户帐户,php,session,Php,Session,我的系统中有两种用户。管理员和普通用户。在这里,我计划在登录后根据用户组使用会话变量重定向。目前管理员可以访问独特的功能(管理员仪表板等)。普通用户有一个配置文件。我需要给管理员的可能性之间切换管理仪表板和用户配置文件没有登录或注销一次以上。谁能给我一个大致的想法,我该如何实现这一点呢?更好的做法是分组(听起来像是这样),并将级别分配给每个分组 例如,假设普通用户为1,管理员用户为2 然后,如果您的页面希望向普通用户和管理员显示内容,您可以说只要登录用户>=1,就显示内容 同样,如果您的页面希望

我的系统中有两种用户。管理员和普通用户。在这里,我计划在登录后根据用户组使用会话变量重定向。目前管理员可以访问独特的功能(管理员仪表板等)。普通用户有一个配置文件。我需要给管理员的可能性之间切换管理仪表板和用户配置文件没有登录或注销一次以上。谁能给我一个大致的想法,我该如何实现这一点呢?

更好的做法是分组(听起来像是这样),并将级别分配给每个分组

例如,假设普通用户为1,管理员用户为2

然后,如果您的页面希望向普通用户和管理员显示内容,您可以说只要登录用户>=1,就显示内容

同样,如果您的页面希望仅向管理员用户显示内容,则只要登录用户>=2,就可以显示内容


这只是一个粗略的示例,因为您没有提供太多的上下文或示例。

这不是一个答案,但您是否尝试过考虑更简单的方法,并在管理员的常规用户页面的代码中创建例外

例如,让我们将1作为管理员,将2作为普通用户:

只有当普通用户的
$row['privilege']==1时才能访问admin.php,反之亦然:
$row['privilege']==2

为什么不在普通用户页面上执行以下操作:

<?php
if ($row['username'] == "admin" && $row['privilege'] == "1") {
// let admin access page
} else {
// don't let anyone access page
}
?>

虽然这个问题很模糊。我将尝试解释在普通web应用程序中管理用户角色、身份验证和授权的正常过程

数据库模型:

1. Table: User
Columns: id, username, password, ..

2. Table: Roles
Columns: roleId, RoleName

3. Table: UserRoles
Columns: userId, roleId
当用户在AuthController中对自己进行身份验证时,在成功进行身份验证后,您需要获取与用户关联的角色。然后你需要把这些信息放到会话中

在您的观点中,您需要根据您的业务条件检查以下条件

View1.php
if(role in session is 'ADMIN' )
Show the data

View2.php
if(role in session is 'USER' )
Show the data

对(问一个模糊的问题,得到一个模糊的答案)我为管理员用户设置了两个会话,并在他登录创建管理员会话后重定向到管理员面板。当他需要对普通用户配置文件进行修改时,他会被引导到该配置文件,创建用户会话。