Команда $array=$sql->fetch(PDO::FETCH_ASSOC) возвращает false, независимо от введенных данных в форму, потому что запрос к базе данных не найдет соответствующей записи в таблице "user". Предполагается, что в таблице "user" уже есть пользователь с введенным логином и паролем. Если это не так, то запрос не вернет никаких результатов и метод fetch() вернет false. Убедитесь, что в базе данных есть правильные данные пользователя, которые соответствуют введенным в форму.
Если ваша версия PHP ниже 8.0, рекомендуется добавить опцию PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION при вызове конструктора. Если ваша версия PHP 8.0 или выше, или если после добавления этой опции ошибки не отображаются, это может означать, что ваш запрос не находит никаких записей в базе данных.