PHP说会话在设置时未设置

php says session not set while it has been set

提问人:Mehrdad Kalateh 提问时间:11/16/2023 更新时间:11/16/2023 访问量:35

问:

我有一个PHP脚本可以登录,我设置了一个会话来存储用户名值,当登录成功时,它会将我重定向到另一个页面,即网站的主页。在此页面中,每次我尝试运行我的代码时,它都会返回 session is not set。有人帮我吗? 这是我的代码 - 登录页面:

<?php
session_start();
unset($_SESSION['username']);
//error_reporting(0);
$username = filter_var($_POST['username']);
$password = filter_var($_POST['password']);

$login = new Login();
if(isset($_POST['submit'])){
    
    if($login->login($username, $password)){
        $_SESSION['username'] = $_POST['username'];
        header("Location: kartablContent/index.php");
        echo "
             <div class='alert alert-success alert-dismissible fade show'>
    <button type='button' class='btn-close' data-bs-dismiss='alert'></button>
    <strong>عملیات موفق</strong> در حال ورود به حساب کاربری ...
  </div>
        ";

        
    }else{
        echo "
                   <div class='alert alert-danger alert-dismissible fade show'>
    <button type='button' class='btn-close' data-bs-dismiss='alert'></button>
    <strong>عملیات ناموفق</strong> نام کاربری یا رمز عبور اشتباه است
  </div>
        ";
    }
}


?>

这是我的主页代码:

<?php
session_start();
if (isset($_SESSION['username'])) {
    $username = $_SESSION['username'];
    echo "Welcome, $username!";
} else {
    echo "Session variable not set.";
}
?>

所以每次我没有得到会话变量的设置,它都会让我疯狂yyy.....

我尝试了各种方法,但没有得到合适的结果

PHP MySQL 会话

评论

1赞 CBroe 11/16/2023
您应通过验证会话 ID 在这些多个请求中是否保持不变来开始调试。
3赞 CBroe 11/16/2023
A 通常应该跟一个 ,否则脚本的其他部分可能仍然会执行,而您实际上并不希望这样做。你在位置标题之后所做的输出也是毫无意义的——浏览器不会向用户显示任何内容,因为你重定向到了其他地方。header("Location: ...);exit;
0赞 Barmar 11/17/2023
检查错误日志中是否有“标头已发送”警告。这可能会阻止会话 cookie 正确发送。

答: 暂无答案