我正在嘗試使用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