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

Aula 3: Segurança com usuario

quando eu coloco para compilar da esse erro: Fatal error: Cannot redeclare usuarioEstaLogado() (previously declared in C:\wamp\www\loja\logica-usuario.php:3) in C:\wamp\www\loja\logica-usuario.php on line

segue o codigo

lógica-usuario.php

<?php

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

function verificaUsuario() {
    if (!usuarioEstaLogado()) {
        header("Location: index.php?falhaDeSeguranca=true");
        die();
    }
}

function usarioLogado(){
    return $_COOKIE["usuario_logado"];
}

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

index.php

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


<?php if (isset($_GET["login"]) && $_GET["login"] == true) { ?>
    <p class="alert-success">Logado</p> 
<?php } ?>
<?php if (isset($_GET["login"]) && $_GET["login"] == false) { ?>
    <p class="alert-danger">Email ou senha invalida!</p> 
<?php } ?>
<?php if (isset($_GET["falhaDeSeguranca"]) && $_GET["falhaDeSeguranca"] == true) { ?>
    <p class="alert-danger">Você não têm permissão a essa funcionalidade!</p> 
<?php } ?>



<h1>Bem vindo!</h1>
<?php if (!usuarioEstaLogado()) { ?>
    <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" >Logar</button></td>
            </tr>
        </table>
    </form>
<?php } ?>
<?php include("rodape.php"); ?>

cabecalho.php

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

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Minha Loja</title>
        <link href="css/bootstrap.css" rel="stylesheet">
        <link href="css/loja.css" rel="stylesheet">
    </head>
    <body>

        <div class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand" href="index.php">Minha Loja</a>
                </div>
                <div>
                    <ul class="nav navbar-nav">
                        <li><a href="produto-formulario.php">Adiciona Produto</a></li>
                        <li><a href="produto-lista.php">Produtos</a></li>
                        <li><a href="sobre.php">Sobre</a></li>
                    </ul>
                </div>
                <div class="navbar-right" style="padding-top: 20px;">
                    <?php if(usuarioEstaLogado()) { ?>
                        <p class="text-success" style="color: #989898 ">Você está logado como <?= usuarioEstaLogado() ?>.</p> 
                    <?php } ?>

                </div>
            </div>
        </div>


        <div class="container">
            <div class="principal">

Agradeço desde ja

2 respostas
solução!

Paulo,

Você está incluindo o arquivo logica-usuario.php duas vezes.

Você tem um include dele dentro do arquivo cabecalho.php e outro dentro do próprio index.php

Escolha um deles e remova. Teste e veja se funciona.

Valeu Arthur, era isso mesmo, na verdade o include "logica-usuario.php" estava se repetindo em vários arquivos, então resolvi colocar so em cabecalho.php e resolveu o problema