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

无数据库情况下如何在PHP中区分用户类型?

解决方案

1. 扩展用户数据结构

先修改你的用户存储数组,给每个用户添加type字段来区分身份,示例如下:

$users = [
    "john" => [
        "password" => "123",
        "type" => "user" // 普通用户
    ],
    "admin" => [
        "password" => "admin123",
        "type" => "admin" // 管理员
    ]
];

2. 登录验证时存储用户类型到Session

登录逻辑里,验证用户名密码通过后,把用户类型存入Session(记得先开启Session):

session_start();

// 读取表单提交的用户名和密码
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';

$users = [
    "john" => ["password" => "123", "type" => "user"],
    "admin" => ["password" => "admin123", "type" => "admin"]
];

if (isset($users[$username]) && $users[$username]['password'] === $password) {
    // 验证通过,将用户信息存入Session
    $_SESSION['user'] = [
        'username' => $username,
        'type' => $users[$username]['type']
    ];
    // 跳转至首页
    header("Location: index.php");
    exit;
} else {
    echo "用户名或密码错误";
}

3. 在index.php中控制按钮状态

在index.php开头开启Session,根据Session中的用户类型判断按钮是否可用:

session_start();

// 未登录用户直接跳转登录页
if (!isset($_SESSION['user'])) {
    header("Location: login.php");
    exit;
}

$userType = $_SESSION['user']['type'];
?>

<!-- HTML按钮部分 -->
<button <?php echo $userType !== 'admin' ? 'disabled' : ''; ?> >
    管理员专属按钮
</button>

可选优化:直接隐藏按钮

如果不想让普通用户看到按钮,可改为条件渲染:

<?php if ($userType === 'admin'): ?>
<button>管理员专属按钮</button>
<?php endif; ?>

内容的提问来源于stack exchange,提问作者Mohamed El-Sharkawy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:55:24