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

Após alterações, não consigo acessar a página de adicionar produtos, mesmo estando logado.

Olá, após eu ter feito algumas alterações, não consigo realizar o acesso a página de adicionar produtos mesmo estando logado. Mesmo obtendo a confirmação de logado, a página me retorna que não tenho acesso a essa funcionalidade. Acesso todas as outras páginas normalmente. Postarei alguns códigos, se precisarem de outros eu vou postando. Vlw :D

6 respostas

logica-usuario.php

<?php 

session_start();


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

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

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


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

function logout(){
    session_destroy();
    session_start();
}

index.php

<?php 
include("cabecalho.php");
include ("logica-usuario.php");
?>

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

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

<h1>Bem vindo!</h1>

<h2>Login</h2>
<form action="login.php" method="post">
    <table class="table">
        <tr>
            <td>Email</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" type="submit">Login</button></td>
        </tr>
    </table>
</form>
<?php if(usuarioEstaLogado()) {?>
        <p>Você realizou o login como <?=$GET['$email']?>, deseja realizar o logout ?</p>
        <button class="btn btn-info"><a href="logout.php"></a></button>



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

adiciona-produto.php

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

<?php

verificaUsuario();

$nome = $_POST["nome"];
$preco = $_POST["preco"];
$descricao = $_POST["descricao"];
$categoria_id = $_POST['categoria_id'];

if(array_key_exists('usado', $_POST)) {
    $usado = "true";
} else {
    $usado = "false";
}

if(insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado)) { ?>
    <p class="text-success">O 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 } ?>

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

Oi Hugo, tenta fazer o include do cabeçalho só depois de executar a função verificaUsuario pra ver se resolve.

Fala Wanderson, deu certo não cara. Continua do mesmo jeito :(

Oi Hugo, não entendi, você disse estar do mesmo jeito e marcou a dúvida como solucionada. O que aconteceu?

solução!

Segui nos capítulos posteriores do curso e baixei o projeto na aula 6. Usando o GitKraken consegui ver o que tava faltando, do jeito que o código tava não ia me mostrar erro nenhum, porque tava faltando uns ifs que não tinha visto. Por isso fechei a discussão no fórum.

Entendi, belezinha então!

Bons estudos!