2
respostas

TypeError

Estou tendo esse erro no meu código e não consigo resolver, alguem pode me ajudar?

Erro fatal : TypeError não capturado: password_verify(): Argumento #1 ($password) deve ser do tipo string, null fornecido em C:\Users\Gabriel\Desktop\aluraplay\src\Controller\LoginController.php:29 Rastreamento de pilha: # 0 C:\Users\Gabriel\Desktop\aluraplay\src\Controller\LoginController.php(29): password_verify(Object(SensitiveParameterValue), '') #1 C:\Users\Gabriel\Desktop\aluraplay\public\index. php(36): Alura\Mvc\Controller\LoginController->processaRequisicao() #2 {main} jogado em C:\Users\Gabriel\Desktop\aluraplay\src\Controller\LoginController.php na linha 29

<?php

declare(strict_types=1);

namespace Alura\Mvc\Controller;
use PDO;

class LoginController implements Controller
{
        private PDO $pdo;

        public function __construct()
    {
        $dbPath = __DIR__ . '/../../banco.sqlite';
        $this->pdo = new PDO("sqlite:$dbPath");
    }

        public function processaRequisicao(): void
    {
        $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
        $password = filter_input(INPUT_POST, 'password');

        $sql = 'SELECT * FROM users WHERE email = ?';
        $stmt = $this->pdo->prepare($sql);
        $stmt->bindValue(1, $email);
        $stmt->execute();

        $userData = $stmt->fetch(PDO::FETCH_ASSOC);
        $correctPassword = password_verify($password, $userData['password'] ?? '');

        if ($correctPassword) {
            header('Location: /');
        } else {
            header('Location: /login?sucesso=0');
        }
    }
}
2 respostas

Já resolvi o problema estava no arquivo login-form.php

Opa, Gabriel! Que bom que conseguiu! Bons estudos :)