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

如何将管理员(isAdmin)与普通员工(isAdmin2)重定向至同一页面

问题分析与解决方案

首先看你当前代码的两个关键问题:

1. 逻辑判断完全颠倒

你原代码的逻辑是:

if(!$user->isAdmin($odb)) elseif (!$user->isAdmin2($odb)){ header('home.php'); exit; }

这个逻辑的意思是:当用户不是管理员,并且也不是普通员工的时候,才会执行跳转。这和你想要的「管理员/普通员工都跳转到home.php」的需求完全相反。

2. HTTP跳转的Header格式错误

header('home.php') 是无效的跳转指令,浏览器不会识别。正确的跳转需要使用 Location: 前缀,格式应为 header('Location: home.php')。


修正后的代码

下面是符合你需求的代码:

// 如果用户是管理员 OR 普通员工,就重定向到home.php
if ($user->isAdmin($odb) || $user->isAdmin2($odb)) {
    header('Location: home.php');
    exit; // 确保后续代码不会执行
}

针对后续需求的补充(仅管理员访问特定页面)

你提到后续要让管理员单独访问特定页面,这里给你一个示例逻辑:

// 仅允许管理员访问的页面:如果用户不是管理员,直接跳转走
if (!$user->isAdmin($odb)) {
    // 可以跳转到首页,或者专门的无权限提示页面
    header('Location: home.php');
    exit;
}

这样既满足当前的跳转需求,也为后续的权限控制留好了扩展空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:30:47