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

aula 2 - efetuando o login e cookies

Boa tarde! Eu completei a aula para efetuar login e deu tudo certo, fiz os testes e não constou nada de errado, mas ao iniciar o trabalho com cookies estou encontrando uma série de problemas:

1- Ao efetuar o login corretamente recebo sou redirecionado e recebo a informação de que o login foi efetuado com sucesso, mas ao verificar o console do navegador o mesmo não exibe cookies do usuário logado;

2- Se efetuar o login com senha ou email errado novamente tudo ok, sou redirecionado e recebo uma mensagem de falha no login, mas de um modo que ainda não consegui entender recebo também a mensagem de logado como:meu-email@.com.

3- na verdade essa mensagem já aparece assim que abro meu site e é exatamente o email de usuário cadastrado no banco de dados. Bom o código está todo abaixo:

banco-usuario.php

<?php
// função busca usuario
    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;
    }

login.php

<?php
//includes
    include("conecta.php");
    include("banco-usuario.php");

    $usuario = buscaUsuario($conexao,$_POST["email"],$_POST["senha"]);
    if($usuario == null){
        header("location:produto-form.php?login=0");
    }else{
        setcookie("usuario_logado",$usuario["email"],time()+5);
        header("location:produto-form.php?login=1");
    }

login-form.php

<?php
include("header.php");
?>
<html>
    <head>
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <meta charset="utf-8"/>
      <script src="jquery.js"></script>
      <script src="js/bootstrap.js"></script>
      <link rel="stylesheet" href="css/bootstrap.css"/>
      <link rel="stylesheet" href="css/meu-css.css"/>
      <title>Criar Site Martins</title>
    </head><!--fim do header-->

    <body>
    <div class="container">
    <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 type="submit" class="btn btn-primary">Login</button></td>
                </tr>
            </table>
            </form>
    </div>
    </body>

produto-form.php

<?php
// includes
    include("header.php");
    include("conecta.php");
    include("banco-categorias.php");

//chamando a função listaCategorias
    $categorias = listaCategorias($conexao);
?>
  <div class="container">
    <h1>Cadastrar Produto</h1>
    <?php 
      if(isset($_GET['login'])&& $_GET['login']==true){ ?>
        <p class="alert-success">Logado com sucesso!</p>  
      <?php };?>
      <?php 
      if(isset($_GET['login'])&& $_GET['login']== false) { ?>
        <p class="alert-danger">Usuário ou senha inválida!</p>
      <?php
      };
      ?>
      <?php 
      if(isset($_COOKIE['usuario_logado'])){?>
        <p class="alert-success">Você está logado como:<?php echo $_COOKIE['usuario_logado']?></p>

      <?php }else{?>
      <p class="alert-danger">Você não está logado</p>
      <?php };?>
2 respostas

Boa noite Cláudio, vamos por partes.

Sobre o cookie não aparecer no console, você já tentou atualizar a página, acredito que com o redirecionamento ele não adiciona no console direto.

Sobre o cookie não expirar, tenta colocar um time() + 60 no lugar de time() +5 pois o seu código está falando que o cookie expira em 5 segundos o que é muito pouco tempo....

Qualquer dúvida estou a disposição.

Espero ter ajudado, Abraços.

solução!

Ok! Tudo resolvido! Obrigado.

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