我已经搜索了这个,但如果网站是wordpress,我能找到的就是答案。
我有2个用户角色。管理员和SuperAdmin。在我的数据库中,我将它们作为角色1& 2.我想根据用户的角色隐藏菜单项。
LoginForm检查用户输入
$query = mysql_query("select * from members where password='$mypassword' AND username='$myusername' AND role='$role'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user'] = $myusername; // Initializing Session
$token = md5(uniqid());
$_SESSION['token'] = $token;
$_SESSION['role'] = $role;
$query = mysql_query("update token from members where username='$myusername' set token = '$token'", $connection);
以下是会员登录后的内容。
<?php
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true);
// User still logged
$role = $row['role'];
if ($_GET['role'] == '2') {
$showdiv = 'super';
}
else if ($_GET['role'] == '1') {
$showdiv = 'admin';
}
echo "<script type=\"text/javascript\">document.getElementById('".$showdiv."').style.display = 'block';</script>";
?>
然后我有菜单所在的位置。 (只显示超级栏)
<div class="mainbar">
<div id="super">
<?php include("supernavbar.php"); ?>
</div>
<div id="admin">
<?php include("navbar.php"); ?>
</div>
</div> <!-- /.mainbar -->
我可能在这里找到了解决方案(感谢&#34;相关问题&#34;) Loading role-based navigation upon login
但我的问题是,我会得到&#34;角色&#34;从登录或登录后的第二页上?
答案 0 :(得分:0)
问这个问题已经三年了,但是我仍然会尽力回答。
您需要具有角色表,然后具有权限表。另一个表为Role_Permissions,您可以在其中定义哪个角色具有哪些权限。然后,当用户登录时,您可以根据其拥有的权限来检查其角色,并显示适当的菜单项。
例如您的角色表可能如下所示:
Admin
Manager
Sales
然后拥有权限:
Create_Order
Read_Order
Update_Order
Delete_Order
等...
然后进入Role_permissions:
Admin Create_Order 1
Manager Create_Order 1
Sales Create_Order 0
您明白了。