8
respostas

A mensagem de "usuário ou senha inválida" ou "Logado com sucesso" não estão aparendo no index.php

Arquivo index.php

<?php 

include ("cabecalho.php"); 

?>
<?php if(isset($_GET['login']) && $_GET['login']==0){ ?>

    <p class="alert-success">Logado com sucesso!</p>

<?php } ?>

<?php if(isset($_GET['login']) && $_GET['login']==1){ ?>

    <p class="alert-danger">Usuário ou senha inválida!</p>

<?php } ?>


<h2>Login</h2>

    <form action="login.php" method="POST">
    <table class="table">

        <tr>
            <td>Email</td>
            <td><input class="form-control" type="text" 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 
include ("rodape.php");
?>

Arquivo banco-usuario.php

<?php

function buscaUsuario($email, $senha){

    $senhaMd5 = md5($senha);

    $query = "select * from usuarios where email='{$email}' and senha='{$senhaMd5}'";
    $resultado = mysql_query($query);
    $usuario = mysql_fecth_assoc($resultado);
    return $usuario;

}

?>

Arquivo login.php

<?php

include("conecta.php");
include("banco-usuario.php");

$email = $_POST['email'];
$senha= $_POST['senha'];

    $usuario = buscaUsuario($email, $senha);

    if($usuario == null){

        header("Location: index.php?login=0");

    }else{

        header("Location: index.php?login=1");

    }
die();


?>
8 respostas

Oi Andrei, tudo bom?

Dando uma olhada no seu código:

<?php if(isset($_GET['login']) && $_GET['login']==0){ ?>

    <p class="alert-success">Logado com sucesso!</p>

<?php } ?>

<?php if(isset($_GET['login']) && $_GET['login']==1){ ?>

    <p class="alert-danger">Usuário ou senha inválida!</p>

<?php } ?>

Estamos verificando se temos login no $_GET e se ele é igual a um ou zero. Isso significa que possivelmente não temos mais login no get. Verifica se você está passando esse parametro por get.

Abraço!

OK. Fiz um teste e os parâmetros estão passando pelo método GET.

http://localhost/loja/login.php?email=fulano%40fulano.com.br&senha=123456

Dando uma olhada aqui:

http://localhost/loja/login.php?email=fulano%40fulano.com.br&senha=123456

Estamos passando o parametro email com o valor fulano%40fulano.com.br (o caracter @ esta represenatdo como %40) e o parametro senha com o valor 123456.

Não estamos passando nenhum parametro login. Por isso não aparece nenhuma das duas menssagens.

Verifica a forma com que você esta realizando seu login.

Qualquer dificuldade, compartilha com a gente =)

Bom dia. Como resolver o problema do "%40"? O email que passei foi fulano@fulano.com.br.

Bom dia. Mesmo criando um login sem o "@" não tive sucesso na execução.

http://localhost/loja/login.php?email=andrei.almeida&senha=123456

Para fazer seu código passar na validação criada:

<?php if(isset($_GET['login']) && $_GET['login']==0){ ?>

    <p class="alert-success">Logado com sucesso!</p>

<?php } ?>

<?php if(isset($_GET['login']) && $_GET['login']==1){ ?>

    <p class="alert-danger">Usuário ou senha inválida!</p>

<?php } ?>

Você precisa passar o parametro login na sua url, algo como:

http://localhost/loja/login.php?login=1

ou

http://localhost/loja/login.php?login=0

Somente assim, seu sistema encontrar a variavel login no get:

$_GET['login']

Caso contrario ela sempre estará vazia e nenhuma das condições será satisfeita.

Bom dia. Não tive resposta passando os parâmetros de login pela url. O que fazer para solucionar esse problema?

Seu código está correto. O unico problema é que , agora, precisamos fazer o login pelo metodo post. Ou seja, não vamos mais passar email e senha pela url (metodo get) pois estamos passando pelo formulario:

    <form action="login.php" method="POST">

E pegamos os dados desse formulario, também por post:

$email = $_POST['email'];
$senha= $_POST['senha'];

Agora é só preencher os campos do formulario e enviar que seu arquivo login.php processará os dados =)

Ou seja, agora você pode acessar a url:

http://localhost/loja/index.php

E utilizar o formulario sem se preocupar com os parametros.

Ao enviar, seu arquivo login.php será chamado.

Cola o resultado aqui pra gente poder ver se deu certo!

Aguardo retorno.