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

PHP会话数据无法跨页面传递问题排查(已开启session.autostart)

问题原因及解决办法

1. 移除重复的session_start()调用

你已经在php.ini中设置了session.autostart = 1,PHP会自动为每个请求初始化session,此时手动在connect.php中调用session_start()会触发冲突警告,干扰session正常工作。

修改connect.php,删除session_start();这一行:

<?php
// 移除session_start();

$server_name = "localhost";
$user_name = "root";
$password = "";
$database_name = "table";

$connection = mysqli_connect($server_name, $user_name, $password,$database_name);
 
// Checking the  connection
if (!$connection) {
  die("Failed ". mysqli_connect_error());
}

?>

2. 跳转后终止脚本执行

登录验证代码中,设置header("location: ...")后,必须立即调用exit()或die(),阻止后续代码继续执行,避免session被意外修改或脚本逻辑干扰session写入。

修改登录验证代码:

$username = mysqli_real_escape_string($connection, $_POST["email"]);  
$password = mysqli_real_escape_string($connection, $_POST["password"]);  
$query = "SELECT * FROM user WHERE email = '$username'";  
$result = mysqli_query($connection, $query);  
if(mysqli_num_rows($result) > 0)  {  
    while($row = mysqli_fetch_array($result)) {  
        if(password_verify($password, $row["password"])) {  
            $_SESSION["userId"] = $row["userId"];  
            header("location: http://localhost/dashboard/entry.php");  
            exit(); // 新增这一行,终止脚本
        }  
        else {  
            echo '<script>alert("Wrong User Details - PASSWORD DOESNT MATCH")</script>';  
        }  
    }  
} else {  
    echo '<script>alert("Wrong User Details - NO EMAIL")</script>';  
}

3. 检查XAMPP的session存储权限

全新安装的XAMPP可能存在session存储目录权限不足的问题,导致session文件无法持久化保存:

  • 打开php.ini,找到session.save_path配置,默认路径Windows为C:\xampp\tmp,Linux为/opt/lampp/tmp。
  • 确保该目录存在且PHP进程拥有读写权限:
    • Windows:右键目录→属性→安全,给IIS_IUSRS或当前用户添加读写权限。
    • Linux:执行chmod 777 /opt/lampp/tmp(仅用于测试,生产环境需设置更严格权限)。

4. 验证session状态

可以在entry.php中先打印全部session内容,辅助排查问题:

<?php 
include('connect.php');

var_dump($_SESSION); // 打印全部session内容,方便排查

if(!isset($_SESSION["userId"])) { 
    echo "NO SESSION";
//  header("location: http://localhost/dashboard/index.php");  
} else {  
    echo "WE HAVE A SESSION!!!";
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:54:54