You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中仅让admin角色显示读、更新、删除按钮列

实现按用户角色控制表格操作按钮列的显示/隐藏

数据库中已为每个用户分配admin或user角色,需求是:仅admin角色用户能查看表格的Read、Update、Delete按钮列,user角色用户隐藏该列。

原PHP渲染代码

while($row = mysqli_fetch_array($result)){
    echo "<tr>";
        echo "<td>" . $row['id'] . "</td>";
        echo "<td>" . $row['name'] . "</td>";
        echo "<td>" . $row['address'] . "</td>";
        echo "<td>" . $row['salary'] . "</td>";
        echo "<td>";
            echo '<a href="read.php?id='. $row['id'] .'" class="mr-3" title="View Record" data-toggle="tooltip"><span class="fa fa-eye"></span></a>';
            echo '<a href="update.php?id='. $row['id'] .'" class="mr-3" title="Update Record" data-toggle="tooltip"><span class="fa fa-pencil"></span></a>';
            echo '<a href="delete.php?id='. $row['id'] .'" title="Delete Record" data-toggle="tooltip"><span class="fa fa-trash"></span></a>';
        echo "</td>";
    echo "</tr>";
}

修改方案

假设当前登录用户的角色存储在$_SESSION['role']中(实际项目中可根据用户身份存储方式调整),通过条件判断控制操作列的输出:

// 确保session已启动(页面开头需调用)
session_start();

while($row = mysqli_fetch_array($result)){
    echo "<tr>";
        echo "<td>" . $row['id'] . "</td>";
        echo "<td>" . $row['name'] . "</td>";
        echo "<td>" . $row['address'] . "</td>";
        echo "<td>" . $row['salary'] . "</td>";
        // 仅admin角色可见操作按钮列
        if(isset($_SESSION['role']) && $_SESSION['role'] === 'admin'){
            echo "<td>";
                echo '<a href="read.php?id='. $row['id'] .'" class="mr-3" title="View Record" data-toggle="tooltip"><span class="fa fa-eye"></span></a>';
                echo '<a href="update.php?id='. $row['id'] .'" class="mr-3" title="Update Record" data-toggle="tooltip"><span class="fa fa-pencil"></span></a>';
                echo '<a href="delete.php?id='. $row['id'] .'" title="Delete Record" data-toggle="tooltip"><span class="fa fa-trash"></span></a>';
            echo "</td>";
        }
    echo "</tr>";
}

补充提示

  1. 务必在页面开头调用session_start(),否则无法读取$_SESSION中的角色信息
  2. 如果角色存储在其他位置(如数据库查询结果、Cookie),替换条件判断中的角色来源即可
  3. 安全起见,要在read.php、update.php、delete.php中也加入角色校验,防止用户直接通过URL绕过前端限制操作数据

内容的提问来源于stack exchange,提问作者bilatonab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:15:51