我正在尝试使用 php 创建一个登录系统,用于检查数据库中的用户名和密码。但问题是我在 foreach 中的 if 语句只检查我的数据库中的最后一个值。例如,如果我的数据库中有 5 个用户名和密码,我的 foreach 中的 if 语句只检查我是否输入了最后一个用户的用户名和密码,但是如果我给它一个用户名和密码,比如说第二个用户,它不会接受它。
html代码:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Login</title>
</head>
<body>
<div class="top">
<div class="box">
<h2>Login</h2>
<form action="findAccount.php" method="post">
<div class="inputBox">
<input type="text" name="username">
<label>Username</label>
</div>
<div class="inputBox">
<input type="password" name="password">
<label>Password</label>
</div>
<input type="submit" name="submit" value="Submit">
</form>
</div>
</div>
</body>
</html>
php代码:
<?php
$dbh = new PDO('mysql:host=localhost;dbname=database_name', 'root', '');
$username = $_POST['username'];
$password = $_POST['password'];
$sql = $dbh->prepare("SELECT * FROM tabel_name");
$sql->execute();
$result = $sql->fetchAll();
foreach ($result as $r) {
if ($username == $r['username'] && $password == $r['password']) {
header('Location: mainPage.php');
} else {
header('Location: login.php');
}
}
达令说