0
我有這樣的代碼PHP條件不起作用
$nick = $_POST["user"];
$pass = sha1($_POST["pass"]);
$user = pg_query($dbconn, "SELECT * FROM users");
$user = pg_fetch_object($user);
if($user->nick != $nick || $user->pass != $pass) {
echo 'Wrong user or password';
}
尼克數據庫字符類是相當散列,但我仍然得到「錯誤的用戶名或密碼」輸出。
是否有任何類型衝突?
你只得到了第一個記錄在你的代碼中。如果記錄是第二個呢?您可以將檢查添加到您的SQL - 「SELECT * FROM users WHERE nick =? AND pass =?',然後在執行查詢之前綁定參數 – andrewsi
這就是數據庫被無盡的請求折磨的方式,這種請求總是返回最大數量的可用數據,然後應用程序無法找到它的一個數據集在尋找。提示:'「SELECT * FROM USERS WHERE nick =?AND pass =?」' – Sven
我知道,它會返回表中的所有記錄,但我只有1個記錄。我測試過,什麼查詢返回,看起來是正確的。 – Jayme