如何根据管理员用户来更改变量

时间:2019-04-14 13:14:11

标签: php admin

我有一个用户表,其中的列名为id_role。默认情况下,为所有新用户分配id_role的{​​{1}}值。

任何需要更高级别特权的用户,我都会手动将其更新为3的{​​{1}}和2的{​​{1}}。

问题在于administrator仍然值最后一次注册的值,我不明白为什么。

https://imgur.com/IjEqzq9

如果我不添加新用户1,它将始终为1,每个人都将登录super_admin;如果我要添加新用户,id_role将为3,并且每个人(甚至是管理员)都将以基本用户身份登录。

这是我的基本代码:

id_role

这就是我尝试过的:

superadmin

1 个答案:

答案 0 :(得分:1)

您的条件重定向块基于第二个查询,该查询不引用已成功登录的用户。(如果该查询完全起作用)。

换句话说,while ($donne = $mangetesmorts->fetch()) {将从表中拉出所有行,然后仅迭代第一行,因为重定向将结束脚本。

因为您的第一个SELECT查询将为用户返回完整的数据行,因为数组$st仅用于确定重定向。

if (in_array($st['activite'], ['cricket', 'foot'])) {
    header("Location: {$st['activite']}.php");
} elseif ($st['id_role'] == 2) {
    header("Location: admin.php");
} elseif ($st['id_role'] == 1) {
    header("Location: admin_super.php");
} else {
    header("Location: index2.php");
}

您可以声明任何喜欢的$_SESSION元素,为了清楚/一致起见,我已将它们排除在此条件块之外。