Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

erro no autenticador (Sistema de Login) sempre está dando senha incorreta e tem uma mensagem de alerta também

Bom dia,

Colocando a senha diferente ou igual a '1234' que está na classe Diretor aparece a mensagem, após executar o arquivo autenticacao.php:

Warning: Use of undefined constant senha - assumed 'senha' (this will throw an Error in a future version of PHP) in D:\Pastas Cristina\Aestudos2022\formacaophp\php_primeiros-passos\projeto\src\Modelo\Funcionario\Diretor.php on line 14 Senha incorreta

Arquivos relacionados:

Diretor.php

<?php

namespace Alura\Banco\Modelo\Funcionario;

class Diretor extends Funcionario
{
    public function calculaBonificacao(): float 
    {
        return $this->recuperaSalario() * 2;
    }

    public function podeAutenticar(string $senha): bool 
    {
        return senha === '1234';
    }
}

Autenticador.php

<?php

namespace Alura\Banco\Service;

use Alura\Banco\Modelo\Funcionario\Diretor;

class Autenticador
{
    public function tentaLogin(Diretor $diretor, string $senha): void 
    {
        if ($diretor->podeAutenticar($senha)) {
            echo "Usuário logado no sitema";
        }
        else{
            echo "Senha incorreta";
        }
    }
}

Autenticacao.php

<?php

use Alura\Banco\Modelo\CPF;
use Alura\Banco\Modelo\Funcionario\Diretor;
use Alura\Banco\Service\Autenticador;

require_once 'autoload.php';

$autenticador = new Autenticador();

$umDiretor = new Diretor('Joao do Pe de Feijao', new CPF('124.453.674-98'), 10000);

$autenticador->tentaLogin($umDiretor, '1234');

Alguém sabe porque a autenticacao não está funcionando, sempre dá senha incorreta? e como resolver este detalhe que gerou este warming?

Obrigada!!!

2 respostas
solução!

Olá Cristina.

No trecho:

return senha === '1234';

troque para

return $senha === '1234';

Na mensagem de erro diz que não foi definida a constante senha, isso aconteceu porque toda variável precisa de $ no começo, se não tiver o php tenta encontrar uma constante com esse nome.

Teste novamente por favor ; )

Abraço.

Corrigi aqui, muito obrigada Renato!!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software