// query
$result = $server->prepare("SELECT * FROM admins WHERE username= :hjnji AND password= :asos");
$result->bindParam(':hjnji', $user);
$result->bindParam(':asos', $password);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
if($rows > 0) {
header("Location: database.php");
}
我試圖創建一個登錄函數,我的數據庫到表「管理員」。但是,每當我嘗試通過瀏覽器登錄到我的數據庫時,它都會迴應我的錯誤消息,表明它沒有正確的用戶名和密碼。我想可能是因爲我的查詢沒有連接到數據庫,但目前我全都沒有想法。PHP登錄功能找不到正確的用戶名和密碼
即使您使用的是準備好的語句,您仍然有一個安全漏洞:您的查詢可以使用不同的密碼存在相同的用戶名。它也遇到了MySQL會對這些字符串比較進行大小寫不敏感的問題,如果你的密碼是明文,這將是一個額外的問題。 更好的方法是僅搜索用戶名,然後單獨檢查(散列)密碼字段。它還將幫助調試爲什麼找不到需要它的行,因爲它將兩個比較分開。 – staticsan