我现在对这个问题感到厌倦,我想离开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"];
?>
谢谢。
答案 0 :(得分:4)
$_SESSION
变量始终是大写字母,因为它是superglobal。
答案 1 :(得分:2)
$_SESSION
必须大写。
另外,请对密码进行哈希+盐化: http://php.net/manual/en/function.password-hash.php
答案 2 :(得分:0)
您似乎正在使用$ _session小写字母。
请尝试使用大写字母$ _SESSION。将所有$ _session替换为$ _SESSION,然后重试。
可能会有所帮助。