1
resposta

Erro Notice: Undefined index: mensagem in

Ola boa tarde, estou fazendo o curso de PHP MVC com PHP: Entenda o padrão Model-View-Controller, e no curso ele pede para colocar uma mensagem de erro, porém quando coloco essa mensagem esta dando erro

Erro: Notice: Undefined index: mensagem in C:\wamp64\www\gerenciador-de-tarefas\view\inicio-html.php on line 33

inicio-html.php


<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Novo curso</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<?php if (isset($_SESSION['logado'])): ?>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <div class="collapse navbar-collapse container " id="navbarSupportedContent">
        <ul class="navbar-nav ml-auto">
            <li class="nav-item active">
                <a class="nav-link" href="/listar-cursos">Home<span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item active">
                <a class="nav-link btn " href="novo-curso">Novo Curso<span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item active">
                <a class="nav-link btn btn-danger btn-lg" href="/logout">Sair da Conta<span class="sr-only">(current)</span></a>
            </li>

        </ul>
    </div>
</nav>


<?php endif; ?>

<div class="container">
    <div class="alert alert-<?= $_SESSION ['tipo_mensagem']; ?>">
        <?= $_SESSIONin ['mensagem']; ?>
    </div>
</div>

linha do erro

<div class="container">
    <div class="alert alert-<?= $_SESSION ['tipo_mensagem']; ?>">
        <?= $_SESSIONin ['mensagem']; ?>
    </div>
</div>

RealizarLogin.php - Esse arquivo é uma class

<?php

namespace Alura\Cursos\Controller;

use Alura\Cursos\Entity\Usuario;
use Alura\Cursos\Infra\EntityManagerCreator;

class RealizarLogin implements InterfaceControlladorRequisicao
{
    /**
     * @var \Doctrine\Common\Persistence\ObjectRepository
     */
    private $repositorioDeUsuarios;

    public function __construct()
    {
        $entityManager = (new EntityManagerCreator())->getEntityManager();
        $this->repositorioDeUsuarios = $entityManager
        ->getRepository(Usuario::class);
    }

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

        if(is_null($email) || $email === false){
            $_SESSION['tipo_mensagem'] = 'danger';
            $_SESSION['mensagem'] = 'o e-mail digitado não é um e-mail válido';
            header('Location: /login');
            exit();
        }

        $senha = filter_input(
            INPUT_POST,
            'senha',
            FILTER_SANITIZE_STRING
        );

        //** @var Usuario $usuario */
        $usuario = $this->repositorioDeUsuarios
            ->findOneBy(['email' => $email]);

        if (is_null($usuario) || !$usuario->senhaEstaCorreta($senha)){
            $_SESSION['tipo_mensagem'] = 'danger';
            $_SESSION['mensagem'] = 'Email ou Senha invalido';
            header('Location: /login');
            return;
        }
        $_SESSION['logado'] = true;


        header('Location: /listar-cursos');
    }
}
1 resposta
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!