为什么会话变量没有设置或丢失?

Eld*_*ias 0 html php ajax session jquery

我有一个登录页面.我输入用户名和密码,并通过ajax提交我的页面.

在check.php中,验证了index.php中的值.

我尝试在check.php中设置一个SESSION ['email']变量,但在成功登录该站点后无法在HOME.php中访问它.

<?php
    session_start();
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">

function output(x) {
    x=x.trim();
    if(x=="YES") {
        $(location).attr("href","HOME.php");
    } else {
        alert("login failed");
    }
}
	
$(function() {
    $(".submit").click(function() {
		
        var Username = $("#txtUserName").val();
        var Password = $("#txtPssword").val();
		
        var dataString = 'Username='+ Username+'&Password='+Password;
        $.ajax({
            type: "POST",
            url: "Check.php",
            data: dataString,
            success: function(response){
                output(response); 
            }
        });

        return false;
    });
});
</script>
</head>
<body>
    <form  method="post" name="login" id="form">
        Username <input type="email"  id ="txtUserName"  />
        Password <input type="password" id="txtPssword" />
        <button type="submit" class="submit">Sign In</button>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

//Check.php

<?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        $email = $_POST['Username'];
        $password = $_POST['Password'];
        if(('ADMIN'==$email)&&('PASS'==$password)) {    
            $_SESSION['email']=$email; // email id stored in a session variable 
            echo "YES";
        } else {
            echo "NO";
        }
    }

?>
Run Code Online (Sandbox Code Playgroud)
//HOME.php

<?php
    session_start();
    echo $_SESSION['email']; // Here session values is losted.
?>
Run Code Online (Sandbox Code Playgroud)

Ale*_*xis 6

您有语法错误,请更改$SESSION['email'];$_SESSION['email'];

session_start();当您需要访问变量会话时,在您的所有php页面中添加一个.