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

PHP控制面板页面权限控制问题:特定u_id用户访问限制失效

问题分析与修复方案

你遇到的问题出在条件判断的逻辑上,咱们来拆解一下错误原因:

你的原判断代码是这样的:

if (isset($_SESSION ['u_id']) != 'hans'){
    header("Location: fout.php?message=paginaontoegankelijk");
    die();
}

这里的isset($_SESSION['u_id'])返回的是布尔值(存在就是true,不存在就是false),你把布尔值和字符串'hans'做比较,这个逻辑完全不对——布尔值和字符串比较永远不会得到你想要的结果,所以其他用户自然能绕过这个限制。

修正后的代码

咱们把判断逻辑拆成两步,先确保用户已登录,再验证用户ID是否为'hans':

<?php 
if (!session_id()) { 
    session_start(); 
} 

// 第一步:检查用户是否未登录,未登录直接跳转
if (!isset($_SESSION['u_id'])){
    header("Location: fout.php?message=paginaontoegankelijk");
    die();
}

// 第二步:检查登录用户的u_id是否不是'hans',不符合就跳转
if ($_SESSION['u_id'] != 'hans'){
    header("Location: fout.php?message=paginaontoegankelijk");
    die();
}

include_once 'header1.php'; 
include 'includes/dbh.inc.php'; 
?>

逻辑说明

  1. 先保持session初始化的逻辑不变,确保会话正常启动。
  2. 先判断用户是否未登录(沿用你之前的正确逻辑),避免未登录用户绕过检查。
  3. 再判断已登录用户的u_id是否不等于'hans',如果是就跳转到错误页面。

这样修改后,只有u_id为'hans'的用户才能访问该页面,其他登录用户和未登录用户都会被拦截。

内容的提问来源于stack exchange,提问作者J. Adam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:28:35