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

Função mostraAlerta com a var $tipo

Não estou entendendo como a função mostraAlerta com o parametro $tipo, consegue saber qual a cor do alerta e qual a mensagem que tera que mostrar, quando ela é chamada no index.php e no produto-lista.php. visto que tera que mostrar uma mensagem diferente para cada página.

function mostraAlerta($tipo){
    if(isset($_SESSION[$tipo])){
?>
<p class="alert-<?= $tipo ?>"><?= $_SESSION[$tipo]?></p>
<?php
  unset($_SESSION[$tipo]);
    }
  }?>

exemplo: remove-produto.php tem uma mensagem para exibir

<?php
include ("cabecalho.php");
include ("conecta.php");
include ("banco-produto.php");
include ("logica-usuario.php");

$id = $_POST ['id'];
removeProduto($conexao, $id);
$_SESSION ["success"] = "Produto removido com sucesso";
header ("Location: produto-lista.php");
die(); //finalizando o location
?>

o logica-usuario.php, tem outra msg para mostrar

function usuarioEstaLogado(){
  return isset($_SESSION["usuario_logado"]);
}

function verificaUsuario(){
  if (!usuarioEstaLogado()) {
    $_SESSION["danger"] = "Você não tem acesso a esta funcionalidade";
    header("Location: index.php");
    die();
  }
}
2 respostas
solução!

Olá Luiz, O que ocorre é que o tipo é usado para definir uma classe no elemento HTML, nesse caso há um CSS associado que define a cor para a classe, por exemplo .alert-danger é vermelha, alert-success é verde, alert-info é azul e assim por diante.

Visto que a mensagem está dentro do session associado pelo tipo na index ele consegue identificar a mensagem.

Dessa forma quando você passa o tipo danger para a função ele faz o seguinte:

  • Cria um html com a tag p com a classe alert-danger (concatenando o tipo com a palavra alert-.
  • Acessa a variável $_SESSION na index danger O $_SESSION[$tipo]vira $_SESSION['danger`] e assim por diante.

As mensagens são definidas nas páginas onde você vê o código abaixo ele está definindo que a mensagem está associada a chave 'danger' do session:

$_SESSION["danger"] = "Você não tem acesso a esta funcionalidade";
    header("Location: index.php");

Assim como este código define que a mensagem de remoção esta associada com a chave 'success'.

$_SESSION ["success"] = "Produto removido com sucesso";
header ("Location: produto-lista.php");

Dessa forma que a aplicação sabe qual mensagem exibir e qual cor deve ser aplicada.

Obg Rafael!! só esta função que não estava muito claro pra mim.

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