我正在尝试使用php创建登录系统。我想创建的是有一个页面,要求用户名,密码,电子邮件。然后,当用户填写字段以进入下一页,在该页面中将要求用户输入他的用户名和密码以便登录到系统。此外,我创造了一些东西,但工作不正常。表单被正确提交,并且我将数据接收到我的数据库中,但是当用户尝试登录到系统时,它只会允许已注册的LAST用户使用他的凭证登录系统。对于已注册的所有其他用户,登录不起作用。请有人可以帮助解决这个问题?PHP用户登录系统问题 - 只有最后一位用户才能登录
谢谢。
我的HTML和PHP代码:
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2>Please sign in with your username<br>
and password to complete the form... Thanks!!!</h2>
<form method="post" action="success.php">
<?php
if(isset($_POST['login'])) {
$username = $_POST['user_username'];
$password = $_POST['user_password'];
$query = "SELECT * FROM users_info";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result)) {
$db_username = $row['user_username'];
$db_password = $row['user_password'];
}
if($username !== $db_username) {
echo "Username does not exist";
}else if ($password !== $db_password) {
echo "Password does not exist";
}else {
header("Location: form.php");
}
}
?>
<div class="form-group">
<label for="user_username">Enter Username</label>
<input type="text" name="user_username" class="form-control" required>
</div>
<div class="form-group">
<label for="user_username">Enter Password</label>
<input type="password" name="user_password" class="form-control" required>
</div>
<div class="form-group">
<input type="submit" name="login" value="Log In" class="btn btn-success">
</div>
</form>
</div>
</div>
</div>
“不工作”是什么意思? –
您正在从数据库中选择***全部***用户,然后将它们全部分配给'$ db_username'(因此循环后只剩下最后一个)......这真是疯了。使用'WHERE user_username = ...'从数据库中只选择你实际感兴趣的一个用户! – deceze
因为你查询所有的用户'SELECT * FROM users_info'并循环它们,所以只有最后一个被保存在你的变量'$ db_username'和'$ db_password'中。 – xander