Редактировать: Ответ, который вы, вероятно, ищете, заключается в том, что вы не выбираете UserID
в своем запросе.Но вы все равно должны посмотреть на то, что я написал ниже.
Вы должны использовать if ($login_check->rowCount() == 1)
вместо count()
В качестве альтернативы, было бы лучше fetch()
пароль для имени пользователя и проверьте его в php, чтобы убедиться, что это правильно, потому что тогда вы можете обнаружить и сохранить попытки ввода неверного пароля для каждого пользователя и, возможно, на время запретить доступ, если их было слишком много.
$login_check = $DBH->prepare("SELECT UserID, Password FROM Users WHERE Username = ?");
$login_check->execute(array($user['username']));
$row = $login_check->fetch();
if (!empty($row)) {
// user exists
if ($row['Password'] == $user['password']) {
// login success
}
else {
// bad password attempt
}
}
else {
// non-existant user
}