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

PHP点餐系统实现管理员仅可操作自有菜品的权限控制方案

餐饮点餐系统菜品数据权限隔离实现方案

具体实现步骤

  • 第一步:修改数据库表结构
    打开phpMyAdmin,对菜品表tbl_food执行如下SQL,新增字段存储上传菜品的管理员ID:

    ALTER TABLE `tbl_food` ADD COLUMN `admin_id` INT NOT NULL DEFAULT 0 COMMENT '菜品所属管理员ID' AFTER `id`;
    

    如果你的管理员表主键不是INT类型,对应调整这个字段的类型即可。

  • 第二步:修改菜品新增逻辑
    打开add-food.php文件,在插入菜品数据的逻辑里,把当前登录管理员的ID一并写入admin_id字段。
    正常管理员登录成功后,ID会存在Session中,一般键名为$_SESSION['admin_id'](如果你的项目里键名不同自行替换),调整插入SQL如下:

    // 获取当前登录管理员ID
    $admin_id = $_SESSION['admin_id'];
    // 插入SQL新增admin_id字段赋值,和你原有参数保持一致即可
    $sql = "INSERT INTO tbl_food SET 
        title = '$title',
        price = '$price',
        image_name = '$image_name',
        featured = '$featured',
        active = '$active',
        admin_id = '$admin_id'
    ";
    
  • 第三步:修改菜品列表查询逻辑(即你提供的manage-food.php页面)
    找到原代码中查询全量菜品的SQL语句,增加管理员ID过滤条件,只查询当前管理员自己上传的菜品:

    // 原有SQL:$sql = "SELECT * FROM tbl_food";
    // 替换为以下代码
    $current_admin_id = $_SESSION['admin_id'];
    $sql = "SELECT * FROM tbl_food WHERE admin_id = $current_admin_id";
    
  • 第四步:给更新、删除接口增加权限校验
    仅做列表过滤无法防止用户手动修改URL参数操作他人菜品,必须在update-food.php、delete-food.php两个文件的业务逻辑最开头增加校验:

    1. 获取URL传入的菜品ID
    2. 查询该菜品对应的所属管理员ID
    3. 和当前登录管理员的Session ID比对,不一致就返回无权限提示,跳转回菜品列表页
      参考校验代码:
    // 获取传入的菜品ID
    $food_id = intval($_GET['id']);
    $current_admin_id = $_SESSION['admin_id'];
    
    // 查询菜品归属
    $check_sql = "SELECT admin_id FROM tbl_food WHERE id = $food_id";
    $check_res = mysqli_query($conn, $check_sql);
    $food_row = mysqli_fetch_assoc($check_res);
    
    // 归属不匹配直接拦截
    if($food_row['admin_id'] != $current_admin_id){
        $_SESSION['unauthorize'] = "<div class='error'>无权操作其他管理员上传的菜品</div>";
        header('location:'.SITEURL.'admin/manage-food.php');
        exit();
    }
    // 校验通过后再执行原有的更新/删除逻辑
    
  • 第五步:处理历史数据
    上线前如果表中已有历史菜品数据,手动在phpMyAdmin中给这些数据的admin_id字段绑定对应管理员ID即可,不需要保留历史数据的话可以直接清空表内旧数据。

现有页面效果

菜品管理页截图

内容的提问来源于stack exchange,提问作者Mathew Garry Karrington

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:09:45