我正在尝试从数据库中获取登录页面的数据,但似乎无法这样做。它不断告诉我我的用户名或密码错误。
我是该领域的初学者,并且从youtube获得了代码。
form1.html
<!DOCTYPE html>
<html>
<head>
<title>Login Site</title>
</head>
<body>
<form method="POST" action="connect2.php">
Username : <input type="text" name="username"><br><br>
Password : <input type="password" name="password"><br>
<input type="submit" value="Login" name="submit">
</form>
</body>
</html>
connect2.php
<?php
$con = mysqli_connect("localhost", "root", "") or die("Failed to connect to MySQL.");
mysqli_select_db($con, "abc") or die("Database does not exist.");
//require ('sql_connect.php');
if (isset($_POST['submit'])){
$username=mysqli_escape_string($_POST['username']);
$password=mysqli_escape_string($_POST['password']);
if (!$_POST['username'] | !$_POST['password']) {
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('You did not complete all of the required fields')
window.location.href='form1.html'
</SCRIPT>");
exit();
}
$sql= mysqli_query("SELECT *
FROM `account`
WHERE username = $username
AND password = $password ");
if(mysqli_num_rows($sql) > 0) {
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Login Succesfully!.')
window.location.href='form1.html'
</SCRIPT>");
exit();
}else{
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Wrong username or password. Please re-enter.')
window.location.href='form1.html'
</SCRIPT>");
exit();
}
}else{
}
?>
我认为PHP编码有问题,因为我不断收到“错误的用户名和密码”消息。
更新:我的数据库https://imgur.com/a/wPWdHDc
的屏幕截图答案 0 :(得分:2)
作为快速解决方案,请在用户名和密码变量两边加上引号:
SELECT * FROM `account` WHERE username = '$username' AND password = '$password'
一些改进此代码的技巧:
此外,您在第一个条件中遇到了错误,您使用了|
(这是按位运算符),而不是||
(这是逻辑OR运算符)
答案 1 :(得分:-2)
我认为
"SELECT * FROM account WHERE username = $username AND password = $password "
应该是
"SELECT * FROM account WHERE username = \"$username\" AND password =\"$password\""