php - 无法从我的登录页面的数据库中获取数据:(
问题描述
我正在尝试从数据库中为我的登录页面获取数据,但似乎无法这样做。它一直告诉我我的用户名或密码错误。
我是该领域的初学者,并从 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>
连接2.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
解决方案
作为快速修复,在用户名和密码变量周围加上引号:
SELECT * FROM `account` WHERE username = '$username' AND password = '$password'
改进此代码的一些提示:
- 使用准备好的语句来避免 SQL 注入
- 不要以纯文本形式存储密码,对其进行哈希处理(加盐)
此外,您的第一个条件有错误,您使用|
的是位运算符,而不是||
逻辑 OR 运算符
推荐阅读
- python - Pygame全屏放大
- file - 如何在 Haskell 中读取 .cfg 文件
- cfml - Cfquery 不工作,附加代码和返回错误
- javascript - 对象数组中的属性名称作为变量?
- group-by - 有没有办法使用使用多列作为新主键的 GROUP BY 语句?(不是一个接一个)
- vue.js - Vue.js 3 替代 `Vue.config.errorHandler`
- python - 使用 math.ceil() 打印下一个正整数,即使数字本身是整数
- docker - 在 docker 容器中找不到包 ipfs、peer 和 shim 包
- babeljs - CLI 中的 @babel/runtime / @babel/plugin-transform-runtime 是否需要是依赖项(即不是 devDependencies)?
- mysql - Wordpress / MySQL - 如何修复“'user_registered'的默认值无效”