count(): параметр должен быть массивом

Рейтинг: -5Ответов: 1Опубликовано: 13.03.2023

Выдает ошибку при авторизации кто поможет что не так?

вроде на другом проекте делал все точно так же там норм тут ошибка

$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
$pass = filter_var(trim($_POST['pass']), FILTER_SANITIZE_STRING);

$pass = md5($pass."gwpdk");

include ("config.php");

$result = $mysql->query("SELECT * FROM `bd_users` WHERE `login` = '$login' AND `pass` = '$pass'");
$user = $result->fetch_assoc();
if(Countable($user) == 0) {
echo "Пользователь не найден";
exit();
}

print_r($user);
exit();

$mysql->close();

header('Location: /');
?>

Ответы

▲ 0
<?php

include ("config.php");

// return user object or false
function authenticateUser($login, $passHash) {
    GLOBAL $mysql;
    $result = $mysql->query("SELECT * FROM `bd_users` WHERE `login` = '$login' LIMIT 1")->fetch_assoc();
    if ( !$result ) return false;
    if ( $result[0]['pass'] !== $passHash ) return false;
    // its okey
    return $result[0];
}


$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
$pass = md5(trim($_POST['pass'])."gwpdk");
$user = authenticateUser($login, $pass);
if ( !$user ) echo 'Пользователь не найден.';

$mysql->close();

header('Location: /');
?>

Возможно так код будет работать как вам нужно.. но я его не тестировал, писал на коленке