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

PHP会话判断代码引发localhost多次重定向错误求助

问题分析与修复

你的代码存在多个关键错误,直接导致了重定向循环:

  1. 未启动Session:访问$_SESSION变量前必须调用session_start(),否则无法读取会话数据,后续判断全无效。
  2. 非法访问未定义变量:第一行$uid=$_SESSION['uid'];在uid未设置时会触发PHP警告,且这个赋值完全没必要。
  3. 逻辑判断彻底混乱:
    • isset($_SESSION['uid'])==$uid是把布尔值(isset的返回结果)和变量值做比较,永远不会成立,导致第二个分支永远无法执行。
    • 外层条件isset($_SESSION['uid'])==false || isset($_SESSION['uid'])==$uid等价于仅判断uid未设置,uid存在时外层条件不成立,不会进入任何分支,若这段代码被错误放在view.php中,会引发循环重定向。
  4. 重定向后未终止脚本:调用header("Location: ...")后必须用exit()或die()终止脚本,否则后续代码可能继续执行,触发重复重定向。

修正后的代码

session_start(); // 必须先启动会话

if (!isset($_SESSION['uid'])) {
    header("Location: login.php");
    exit(); // 终止脚本,避免后续代码执行
} else {
    header("Location: view.php");
    exit();
}

额外注意事项

  • 这段验证代码应该放在需要权限校验的入口页面(比如首页index.php),不要放在view.php中,否则uid存在时会一直重定向到自身,再次触发循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:50:21