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

Login bem sucedido mas a tela não muda e não é permitido acesso.

Index.php

<?php 

    include("cabecalho.php");
    include("conecta.php");
    include("logica-usuario.php");

    if(isset($_GET["login"]) && $_GET["login"]==true) { ?>
        <p class="alert-success">Logado com sucesso!</p>
<?php } 

    if(isset($_GET["login"]) && $_GET["login"]==false) { ?>
        <p class="alert-danger">Usuário ou senha inválida!</p>
<?php } ?>

<?php if(isset($_GET["falhaDeSeguranca"]) && $_GET["falhaDeSeguranca"]==true) { ?>
        <p class="alert-danger">Você não tem acesso a essa funcionalidade!</p>
<?php } ?>

<h1>Bem Vindo</h1>

<?php if(usuarioEstaLogado()) {?>

        <p class="text-success">Você está logado como <?=usuarioLogado()?></p>

<?php } else {?>

        <h2>Login</h2>

        <form action="login.php" method="post" >
            <table class="table">
                <tr>
                    <td>E-mail</td>
                    <td><input class="form-control" type="email" name="email"></td>
                </tr>
                <tr>
                    <td>Senha</td>
                    <td><input class="form-control" type="password" name="senha"></td>
                </tr>
                <tr>
                    <td><button class="btn btn-primary">Login</button></td>
                </tr>
            </table>
        </form>

<?php }?>

<?php include("rodape.php");?>

Conecta.php

<?php

    //Realiza a conexão com o banco de dados
    $conexao = mysqli_connect("localhost","root","","loja");

?>

logica-usuario.php

<?php

   //Verifica se usuário está logado
   function usuarioEstaLogado(){
       return isset($_COOKIES["usuario_logado"]);
   }

    //Retorna se existe acesso para funcionalidades
    function verificaUsuario(){
        if(!usuarioEstaLogado()){
            header("Location: index.php?falhaDeSeguranca=true");
            die();
        }
    }

    //Retorna o usuario que está logado
    function usuarioLogado(){
        return $_COOKIE["usuario_logado"];
    }

    function logaUsuario($email){
        setcookie("usuario_logado", $email, time()+60);
    }

banco-usuario.php

<?php

    //Busca o usuario através da senha criptografada via md5
    function buscaUsuario($conexao, $email, $senha){

        $senhaMD5 = md5($senha);

        $query = "select * from usuarios where email='{$email}' and senha='{$senhaMD5}'";
        $resultado = mysqli_query($conexao, $query);
        $usuario = mysqli_fetch_assoc($resultado);

        return $usuario;
    }

adiciona-produto.php

<?php     

    //Inclui os arquivos PHP  
    include("cabecalho.php"); 
    include("conecta.php");
    include("banco-produtos.php");
    include("logica-usuario.php");

    verificaUsuario();

    //Recebe o nome, preço e descrição dos produtos
    $nome = $_POST['nome'];
    $preco = $_POST['preco'];
    $descricao = $_POST['descricao'];
    $categoria_id = $_POST['categoria_id'];

    //Validando o POST para o CheckBox
    if(array_key_exists('usado', $_POST)){
        $usado = "true";
    }else{
        $usado = "false";
    }


    //Retorna de a inserção foi ou não bem sucedida
    if (insertProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado)){

        ?><p class="text-success"> Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p><?php

    }else{

        $msg = mysqli_error($conexao);
        ?><p class="text-danger">O produto <?= $nome ?> não foi adicionado: <?= $msg ?></p><?php            
    }

    mysqli_close($conexao);

?>



<?php include("rodape.php");?>
2 respostas

Oi Silvâno, tudo bom?

Seu formulario está apontando pro arquivo login.php. Posso dar uma olhada nele?

Aguardo retorno!

Abraço =)

solução!

Rapaz, refiz os passos e encontrei o erro.

No arquivo logica_usuario.php na função usuarioLogado eu escrevi $_COOKIES e $_COOKIE

   //Verifica se usuário está logado
   function usuarioEstaLogado(){
       return isset($_COOKIES["usuario_logado"]);
   }

Estranho é que não teve erro ao utilizar $_COOKIES, procurei no manual do PHP e contas que $_COOKIES não existe....