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

funcao session_start()

A função session start já está sendo chamada no arquivo logica-usuario.php, mas ao chamá-la novamente no arquivo mostra-alerta.php foi gerado um erro que depois foi tratado na aula. Qual a implicação de não chamar a função session_start no arquivo mostra-alerta.php?

//logica-usuario.php
session_start();
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();
  }
}

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

function logaUsuario($email) {
  $_SESSION["usuario_logado"] = $email;
}

function logout() {
  session_destroy();
  session_start();
}
//mostra-alerta.php
<?php
session_start();
function mostraAlerta($tipo) {
    if(isset($_SESSION[$tipo])) { ?>
        <p class="alert-<?= $tipo ?>"><?= $_SESSION[$tipo] ?></p>
    <?php unset($_SESSION[$tipo]); }
} ?>
3 respostas
solução!

Oi Geovane tudo bom?

Quando a gente já tem uma sessão criada para um usuario, não conseguimos criar outra. Adicionar a linha session_start em mais de um ponto no fluxo dos seus scripts pode gerar esse erro, que foi apresentado no curso. As vezes a gente deixa passar esse tipo de detalhe.

Como a função é utilizada apenas em momentos que estamos lidando com o usuario, nada mais justo que mantela somente no script referente a isso. Que no nosso caso é o logica-usuario.php

Quando colocamos essa linha no script mostra-alerta.php estamos deixando ele com mais informação do que devia, já que o session_start quem gerencia é o logica-usuario.php

Não chamar esse script torna nosso código mais facil de manter e evita o erro mencionado acima =)

Qualquer problema é śo falar.

Abraço e bons estudos.

Ou seja, não tem problema não chamar a função?

Problema algum =)

Inclusive, a ideia é que chamemos essa função em um lugar só mesmo.