PHP 会话在索引页上不起作用


PHP session is not functioning on the index page

我的索引页面在没有包含PHP会话的情况下重定向正常。当我包含它并输入正确的用户名和密码时,它似乎无法通过重定向传递用户名会话。 因此,它将会话视为空,并将我重定向回索引页。

这是我的索引页面

<?php
session_start();
?>

<!DOCTYPE html>
<head> 
    <meta charset = "utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <title> RBH-PAS system </title>
    <link rel = "stylesheet" type ="text/css" href = "pascss/index.css " >
    <script type="text/javascript">
    $(document).ready(function(){
            $(function() {
                $("#login1").on("submit", function(event) {
                    event.preventDefault();
                    $.ajax({
                        url: "login.php",
                        type: "post",
                        data: $(this).serialize(),
                        success: function(d) {
                        var r = d;
                           if(r==2){window.location ="patient.php"; }
                           else if(r==1){window.location="clinician.php";}
                           else{alert("incorrect user details entered");
                                window.location="index.php";
                                }
                        }
                    });
                });
            });
        });
        </script>
</head>
<body>
    <h1><CENTER> WELCOME TO PAS DASHBOARD</CENTER></h1>
    <div id="login">
        <h2><span class="fontawesome-lock"></span>Sign In</h2>

        <form id ="login1" name ="login1" method="post">
            <fieldset>
                <p><label for="username">Username</p>
                <p><input type="text" id ="username" name="username" placeholder="Enter username" required></p>
                <p><label for="password">Password</label></p>
                <p><input type="password" id="password" name="password" placeholder="Enter password" required></p>
                <p><input type="submit" id ="submit" value="Sign In" /></p>
                </fieldset>
</body>
</html> 

这是我的登录页面,我确实在其中启动了会话

<?php
require_once"conn.php";
session_start();

if($_SERVER['REQUEST_METHOD']=='POST'){
//recieve credentials from the user 
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);

//check the variables recieved are not empty
    if($username != '' && $password != ''){
        $sql = "SELECT *FROM staff WHERE username ='$username' AND password = '$password' ";//create an sql statement 
        $result = $conn->query($sql);//run sqlm statement 
        $row = $result->fetch_assoc(); //fetch row of data
            if($result->num_rows == 1 ){//check if user exist as a doctor 

                    if($row["role"]== "clinician"){ //check if user exist as a clinician  
                    $send = 1;
                    echo $send;}
                        else if($row["role"]== "doctor"){ //check if user exist as a clinician  
                        $send = 2;
                        echo $send;}
            }else{//if user doesn't exist
                        $_SESSION["myusername"] = '';
                        $send = 3;
                        echo $send;}
    }
}
else{$conn=null;}
?>

这是我在其他页面上检查用户登录的方式

<?php
session_start();
if (!(isset($_SESSION['username']) && $_SESSION['username'] != '')) {
header ("Location: index.php");}

?>

您永远不会在登录页面中将$_SESSION['username']设置为任何值。