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

PHP页面报错重定向次数过多无法正常工作,如何排查代码问题?

问题根因
  • 循环重定向核心触发逻辑:若该段代码放置在index.php中,已登录用户访问首页时会持续触发header('location:index.php')跳转,形成无限重定向循环。
  • 代码语法缺陷:$_SESSION['loggedin'] == "false"使用比较运算符而非赋值运算符,该行无实际业务作用。
  • 重定向未终止执行:调用header跳转后未添加exit/die语句,后续代码仍会执行,可能引发逻辑异常。
  • 缺少session初始化:若代码开头未调用session_start(),会导致$_SESSION变量无法正常读取,触发逻辑判断错误。
修复代码

根据业务场景调整跳转判断,仅非首页的已登录用户触发跳转即可:

// 代码开头必须先启动session,否则$_SESSION无法正常读写
session_start();

// 获取当前运行的页面文件名
$current_page = basename($_SERVER['PHP_SELF']);

if (isset($_SESSION['loggedin'])) {
    if ($_SESSION['loggedin'] == null || $_SESSION['loggedin'] == "false") {
        // 修正为赋值运算符
        $_SESSION['loggedin'] = "false";
    } elseif ($_SESSION['loggedin'] == "true" && $current_page !== 'index.php') {
        // 仅非首页的已登录用户才跳转至首页,跳转后终止后续代码执行
        header('Location: index.php');
        exit();
    }
}

如果该段代码仅用于登录页校验,可直接将判断条件改为当前页面是登录页时才触发跳转,逻辑同理。

内容的提问来源于stack exchange,提问作者Colin Rice

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:57:02