如何使用PHP和MySQL识别用户访问权限



我使用PHP开发了一个登录页面,供教师和学生登录。登录后,我可以创建一个会话变量,让他/她一直登录到注销。

$_SESSION['id']=12;

现在,当他们第一次登录时,我希望他们输入额外的信息,根据他是老师还是学生,向他们提供不同的表格。

现在我的问题是,在他的会话中,我将如何识别用户类型?我需要对Session变量进行哪些更改,或者需要存储哪些额外信息?(我已经为所有教师和学生创建了带有默认密码的数据库,现在需要像我所描述的那样从他们那里输入额外信息)。

如果您可以从数据库中实时检索用户的信息,最好的做法(如果只有两个角色,并且没有广泛的权限)是在用户表中添加一个角色字段。

将其设为布尔值,使0=学生,1=教师。

然后,您可以使用if()语句来检查这一点,以决定显示哪个表单,例如

if($user_data['role'] == 0){
    // Display student form
} elseif($user_data['role'] == 1) {
    // Display teacher form
}

如果你不想每次重新加载页面时都从数据库中获取,你可以将其存储在$_SESSION['role']变量中。

有很多方法可以实现这一点。如果你在会话中存储用户ID,那么你可以根据用户的ID查找用户的详细信息和权限。因此,如果你在数据库表中有一个user_type列,你可以在其中存储用户是老师、学生、妖精还是其他什么,那么你就可以在PHP脚本中检查这个值。

如果你需要在会话中保存信息:用户名、密码、老师或学生作为标志,你可以进行流,登录后,你保存$_session['username]、$_session['password']、$_session['flag'],然后,会话将以字符串形式保存,并保存在会话文件中。

让我们简化一下,我宁愿更改我的数据库,再添加一个名为"访问"或"特权"的列,1个用于教师,2个用于学生,您可以筛选状态,定义应该显示哪个菜单。

最新更新