rowCount()
- самый бесполезный метод во всех API баз данных. И ваш код является прекрасным примером этого.
У вас уже есть результаты вашей базы данных в $ query, это означает , вам больше ничего не нужно . Просто избавьтесь от строки rowCount
и используйте $query
прямо в условии:
$query = $db->query("SELECT * FROM yonetim WHERE ...")->fetch(PDO::FETCH_ASSOC);
if ($query){
Два обязательных примечания:
- Ни при каких обстоятельствах не следует помещать переменную данных непосредственно в запрос. Вместо этого используйте заполнитель и подготовленный запрос.
- Использование MD5 () не лучше, чем хранение в виде простого текста. Вместо этого вы должны использовать password_verify ().
Вот канонический пример, который я написал для кода , проверьте логин и пароль, используя PDO :
$stmt = $pdo->prepare("SELECT * FROM yonetim WHERE username = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password']))
{
$_SESSION['LOGGED'] = $user['username'];
header('location:index.php');
exit;
} else {
echo "Kullanıcı adı veya şifre hatalı!";
}
видите - на самом деле это намного проще, чем ваш текущий код!