隐藏/显示用户列组的菜单项
Hide/Show menu items for user ranks
我需要一些帮助。我在mysql数据库中排名。
mysql:中的排名如下
- 用户
- 超级用户
- 上传程序
- 主持人
- 管理员
代码:
ALTER TABLE `tbl_users` CHANGE `Rank` `Rank` ENUM('User','Power User','Uploader','Moderator','Administrator',) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'User';
所以。我想隐藏排名用户*和**超级用户的菜单名称"上传文件"。并显示给上传程序、主持人和管理员
这是我在上传页面导航菜单中的代码:
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Torrenti <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">.....</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">.....</a></li>
<li><a href="#">.....</a></li>
<li role="separator" class="divider"></li>
<li class="dropdown-header">.....</li>
<li><a href="upload.php">Upload file</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">.....</a></li>
</ul>
</li>
以下是我的PHP代码,用于检查用户是否已经登录:
<?php
session_start();
require_once 'class.user.php';
$user_home = new USER();
if(!$user_home->is_logged_in())
{
$user_home->redirect('index.php');
}
$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
?>
最简单的方法如下:
<?php if ($row["Rank"] == "Uploader" || $row["Rank"] == "Moderator" || $row["Rank"] == "Administrator") { ?>
<li><a href="upload.php">Upload file</a></li>
<?php } ?>
一种更优雅的方法是定义一个有权限的列组数组,并检查列组是否在数组中,如下所示:
<?php
$ranks_with_upload_persmission = array("Uploader", "Moderator", "Administrator");
if(in_array($row["Rank"], $ranks_with_upload_permission))
{
?>
<li><a href="upload.php">Upload file</a></li>
<?php
}
?>
这种方法的优点是不必编写那么多OR运算符。第二,它可读性更强,第三,它可重复使用。如果你想在页面上隐藏更多的元素,你只需要做in_array,而不是用许多OR复制整个If。
相关文章:
- 设计Django中当前导航菜单项的样式
- 将菜单项与滚动绑定时出现Jquery错误
- HTML5上下文菜单-当菜单项被点击时,访问最初被点击的元素
- 如何使活动菜单项具有突出显示样式
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 如何在每个下拉菜单项的每个类别下输出链接
- 突出显示菜单项及其子菜单项
- 菜单项 - 单击淡入和淡出
- 更改母版页中菜单项的类
- 引导程序3-下拉菜单项中的取消按钮
- JQuery UI菜单防止子菜单项折叠
- 如果其中一个子菜单项处于活动状态,则展开下拉菜单
- 在表格最后一行(链接)中显示菜单,并在单击菜单项时显示模式窗口
- Joomla:菜单项指向同一页面中的不同位置
- 单击菜单项更改HTML内容
- 使用css更改所选菜单项的颜色
- Pebble.js菜单项渲染速度慢
- 选择单选按钮或下拉菜单项时自动更新PHP变量
- 无法拦截上下文菜单项单击
- 为引导菜单项创建指令