[英]Login PHP keeps returning invalid username or password even if the fields are correct?
So basically, when I press login on my form, even if my username and password are correct in the input fields, I keep getting the invalid username or password error. 因此,基本上,当我在表单上按登录时,即使我的用户名和密码在输入字段中正确,我仍然会收到无效的用户名或密码错误。 I am unsure how to fix this, as everything looks correct in my code.
我不确定如何解决此问题,因为我的代码中的所有内容看起来都是正确的。 How would I fix this so I can log in?
我将如何解决此问题以便登录? Here is the code:
这是代码:
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "users";
$mysqli = new mysqli($servername, $username, $password, $dbname);
if ($mysqli->connect_error)
{
die("Connection failed: " . $mysqli->connect_error);
}
else
{
if (isset($_POST["username"]) && isset($_POST["password"]))
{
$username = (string)$_POST["username"];
$password = (string)$_POST["password"];
$result = $mysqli->query("SELECT * FROM `users` WHERE `username`='$username'");
while($row = $result->fetch_assoc())
{
if ($username == $row['$username'] && $password == $row['password'])
{
$regKey = $row['regKey'];
$_SESSION["reg"] = $regKey;
die("YOU DID IT");
}
else
{
$mysqli->close();
die("Error, invalid username or password");
}
}
}
}
Thank you for taking your time to help. 感谢您抽出宝贵的时间来帮助您。
Instead of this: 代替这个:
if ($username == $row['$username'] && $password == $row['password'])
try this: 尝试这个:
if ($username == $row['username'] && $password == $row['password'])
You were most probably trying to fetch an invalid column $row['$username']
from the database. 您很可能试图从数据库中获取无效的列
$row['$username']
。
Yes, as HawasKaPujaari say you were trying to fetch an invalid column. 是的,正如HawasKaPujaari所说,您正在尝试获取无效的列。
But also, I think you can have some problems with your session, you need to initialize, like this: 而且,我认为您的会话可能会遇到一些问题,您需要进行初始化,如下所示:
@session_start();
Just before this:
在此之前:
$_SESSION["reg"] = $regKey;
Good luck! 祝好运!
What is the need of if(condition inside while loop).? if(while循环内的条件)需要什么? Check your condition in sql query only.
仅在sql查询中检查条件。
.
.
.
$username = $_POST["username"];
$password = $_POST["password"];
$result = mysqli->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$CountResult=mysql_num_rows($result);
if($CountResult==1)
{
while($row = $result->fetch_assoc())
{
$regKey = $row['regKey'];
$_SESSION["reg"] = $regKey;
die("YOU DID IT");
}
}
else
{
$mysqli->close();
die("Error, invalid username or password");
}
.
.
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.