PHP会话变量在下一页中丢失

时间:2018-06-21 09:18:50

标签: php html variables session

我现在对这个问题感到厌倦,我想离开Web编程。我创建了一个表单,并将文件命名为“ index.php ”。代码在这里:

   <form action='login.php' method='post'><br>
<center><input type='text' class='form-control' style='width:320px;' placeholder='Username' required name='username'><br></center>
<center><input type='password' class='form-control' style='width:320px;' placeholder='Password' required name='password'><br></center><br>

<center><button type='submit' class='btn btn-danger btn-lg' name='login'>Log In</button></center>
</form><br><br>

点击提交后,该过程将在“ login.php ”处进行,我正在插入代码。在这里,我构造了一个会话变量,该变量仅在此页面中有效。代码在这里:

 <?php
session_start();
ob_start();


$servername = "localhost";
$username = "root";
$password = "";
$dbname = "plusyou";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// variables
$UName = $_POST["username"];
$Password = $_POST["password"];

$sql = "SELECT FName, UName, Password, Email FROM users WHERE UName='$UName' AND Password='$Password'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        //variables
        $_session["Email"] = $row["Email"];
        echo $_session["Email"];

        echo "<a href='home.php'>Home</a>";
    }
} else {
    echo "0 results";
}




ob_end_flush();

?>

在主页中,会话变量不起作用。请让我知道我的任何错误。任何帮助将不胜感激。 “ home.php ”文件的代码在此处:

   <?php
session_start();

echo $_session["Email"];

?>

谢谢。

3 个答案:

答案 0 :(得分:4)

$_SESSION变量始终是大写字母,因为它是superglobal

答案 1 :(得分:2)

$_SESSION必须大写。

另外,请对密码进行哈希+盐化: http://php.net/manual/en/function.password-hash.php

答案 2 :(得分:0)

您似乎正在使用$ _session小写字母。

请尝试使用大写字母$ _SESSION。将所有$ _session替换为$ _SESSION,然后重试。

可能会有所帮助。