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

Index无法通过session.php及用户认证跳转至HOME页面问题

问题分析与排查方案

我想通过session.php在HOME.php页面展示用户的全部信息,但index.php无法跳转到该页面,相关代码如下:

HOME.php 代码

<?php
   require_once './assets/php/session.php';
   echo '<pre>';
   print_r($data);
?>
<a href="assets/php/logout.php">Logout</a>

session.php 代码

<?php

  session_start();
  require_once 'auth.php';
  $cuser = new Auth();

  if(!isset($_SESSION['user'])){
    header('location:index.php');
    die;
  }

  $cemail = $_SESSION['user'];

  $data = $cuser->currentUser($cemail);

?>

Auth类的currentUser方法代码

public function currentUser($email){
        $sql = "SELECT * FROM users WHERE email=:email AND deleted !=0";
        $stmt = $this->conn->prepare($sql);
        $stmt->execute(['email'=>$email]);
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        return $row;
    }

排查方向

  • 跳转逻辑缺失:检查index.php是否有登录验证通过后跳转到HOME.php的代码,同时确认登录成功时是否正确设置了$_SESSION['user'],没有这两步就不会触发跳转。
  • SESSION启动时机:index.php处理登录请求时必须先调用session_start(),否则$_SESSION['user']无法被正确存储和读取。
  • 路径正确性:确认session.php里跳转的index.php路径是否匹配实际目录结构,若HOME.php在根目录,当前相对路径没问题,否则需改为绝对路径(如/index.php)。
  • 输出缓冲问题:检查session.php和HOME.php的开头是否有多余空格、HTML标签等输出,header()之前有任何输出都会导致跳转失效。
  • SQL查询逻辑:currentUser方法的SQL条件是deleted !=0,若用户的deleted字段为0会返回空数据,但这不会直接导致跳转失败,需确认登录逻辑是否正确验证了用户存在性。
  • SESSION存储配置:检查服务器的SESSION配置,比如session.save_path是否可写,确保SESSION能正常保存和读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:05:13