У меня есть код здесь, который возвращает «Имя пользователя неправильное» при вводе его, когда он должен выводить «Неправильный пароль», потому что я просто добавляю правильное имя пользователя, но неверный пароль.Проверка имени пользователя и пароля из datatabase
if ($_POST['login']) {
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
$fetchme = $dbc->query('SELECT * FROM users WHERE username="$username"');
while($row = $fetchme->fetch(PDO::FETCH_ASSOC)) {
$lastlogin = $row['lastlogin'];
}
if (!$username||!$password) {
echo '<center>Please enter a valid username and password</center>';
}else{
$login = $dbc->query('SELECT * FROM users WHERE username="$username"');
$num_rows_login = ($login->fetchColumn() > 0) ? true : false;
if ($num_rows_login == 0) {
echo "<center>Username doesn't exist</center>";
}else{
while($login_row = $login->fetch(PDO::FETCH_ASSOC)) {
$password_db = $login_row['password'];
$password_db2 = hash('sha512', $password);
if ($password_db2 != $password_db) {
echo '<center>Incorrect password</center>';
}
}
}
}
}
Это мой первый опыт использования PDO. Любая помощь приветствуется!
Вашего синтаксис SQL является неправильным. Вы должны получить сообщение об ошибке. Если вы используете PDO, также используйте подготовленные инструкции. – mario
Не делайте 'strip_tags()' на пароле; это не имеет смысла, особенно потому, что вы все равно сохранили бы его до хранения. И почему вы повторяете запрос? –