登录会话仅能在重定向页面访问,其他页面无法访问的问题求助
登录会话仅能在重定向页面访问,其他页面无法访问的问题求助
大家好,我最近在做一个基础的登录功能,碰到个头疼的问题:用户通过login.php登录成功后,重定向到的dashboard.php能正常读取会话里的用户名信息,但如果直接访问其他页面,或者从仪表盘跳转到别的页面,就完全获取不到会话数据了,想请大伙帮忙排查下问题出在哪。
先贴出我的代码:
login.php 代码
<?php session_start(); // 我后来意识到可能漏加了这个,先补上? // 假设这里已经有数据库连接 $conn 的初始化代码 if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $password = $_POST['password']; $stmt = $conn->prepare("SELECT * FROM admin WHERE username=? AND password=?"); $stmt->bind_param("ss", $username, $password); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { $_SESSION['username'] = $username; header("Location: dashboard.php"); exit(); } else { $error_message = "Invalid username or password"; } $stmt->close(); } ?>
dashboard.php 代码
<?php session_start(); if (isset($_SESSION['username'])) { echo "Logged in as: " . $_SESSION['username']; } else { echo "You are not logged in."; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dashboard</title> </head> <body> <!-- 页面其他内容 --> </body> </html>
我自己琢磨是不是其他页面没加session_start()?但不确定有没有其他可能,比如会话的配置问题,或者重定向的时候有没有丢失会话标识?麻烦大家帮我看看~
备注:内容来源于stack exchange,提问作者Asad Khrd




