gugu3699 1 Denunciar post Postado Agosto 19, 2014 Ola, preciso de uma ajudinha de voçês Tenho um sistema de login que verifica o cpf e senha do usuário que tenta logar, funciona bacana só que quando o usuário não está cadastrado ele me devolve este retorno em alerta, queria que fosse em uma "div" Tipo: <div><p id="resposta_login" align="center"></p></div> Segue abaixo a página php que verifica e a index do formulário. Obrigado. valida_login.php <?php // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { header("Location: index.php"); exit; } // Tenta se conectar ao servidor MySQL mysql_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysql_select_db('adm_login') or trigger_error(mysql_error()); $usuario = mysql_real_escape_string($_POST['usuario']); $senha = mysql_real_escape_string($_POST['senha']); // Validação do usuário/senha digitados $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1"; $query = mysql_query($sql); if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado // Se a verificação julgar que o usuario não existe irá mostrar essa mensagem em javascript echo "<script language='javascript' type='text/javascript'> alert('Login inválido, usuario ou senha incorretos!'); window.location.href='index.php'; </script>"; die(); // equivalente a exit(); — Mostra uma mensagem e termina o script atual } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query); // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['UsuarioID'] = $resultado['id']; $_SESSION['UsuarioNome'] = $resultado['nome']; $_SESSION['UsuarioNivel'] = $resultado['nivel']; // Redireciona o visitante header("Location: sistema.php"); exit; } ?> index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt"> <title>:: SISTEMA ::</title> <head> <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-1" /> <link href="css/index.css" rel="stylesheet" type="text/css" /> </head> <body onload="document.getElementById('login').focus()"> <div id="div_geral"> <div class="div_topo"> <a href="principal.php"><img src="imagens/banner_topo.jpg" border="0" /></a> <div class="div_menu"> <ul id="menu"> <li><a href="#">AJUDA</a></li> <li><a href="#">NOVO USUÁRIO</a><ul><li style="width:150px;"><a href="cadastro">CADASTRE-SE</a></li><li style="width:150px;"><a href="#">RECUPERAR SENHA</a></li></ul> </ul> </div> </div> <div class="div_meio"> <script type="text/javascript"> //<!-- não clicar entrar com um dos campos vazios //--> function ValidaLogin(){ var usuario = document.getElementById('usuario'); var senha = document.getElementById('senha'); var retorno = true; var msg; msg = "Erros encontrados:\n\n"; if (usuario.value == ""){ msg+="Preencha o campo CPF.\n" retorno = false; } if (senha.value == "" ){ msg+="Preencha o campo SENHA.\n" retorno = false; } if(!retorno){ alert(msg); return false; }else{ document.getElementById('div_login').style.display = "none"; document.getElementById('div_carregando').style.display = "block"; return true; } } </script> <br/><br /> <form id="form_login" action="valida_login.php" method="POST" onsubmit="return ValidaLogin();"> <div align="left" id="div_login" class="div_login" style="display:block"> <span class="txt_login">CPF:</span> <div style="margin-top:5px"></div> <input type="text" name="usuario" id="usuario" value="" size="20" maxlength="20"> <div style="margin-top:5px"></div> <span class="txt_login">SENHA:</span> <div style="margin-top:5px"></div> <input type="password" name="senha" id="senha" size="20" maxlength="20"> <div style="margin-top:5px"></div> <input type="submit" value="ENTRAR"> <input type="reset" value="LIMPAR"> <div style="margin-top:5px"></div> </div> </form> <div align="center" id="div_carregando" class="div_carregando_login" style="display:none"> <img src="imagens/loading.gif" /><br /> <span class="span_carregando_relatorio" id="span_carregando_relatorio">AUTENTICANDO O LOGIN<br /> AGUARDE...</span> </div> <div><p id="resposta_login" align="center"></p></div> </div> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 19, 2014 Tente assim: if(!retorno){ jQuery("#resposta_login").html(msg); return false; } Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 19, 2014 E o retorno do echo da página valida_login.php que verifica se o usuário existe como ficaria? não queria exibir a mensagem como alerta, quero que ela apareca na div também. Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 19, 2014 Você pode trazer textos do php, ex.: "logado com sucesso!", ou "Erro ao logar". No jquery só vai imprimir essas mensagens, e se logado com sucesso, faz o redirecionamento Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 19, 2014 Você pode trazer textos do php, ex.: "logado com sucesso!", ou "Erro ao logar". No jquery só vai imprimir essas mensagens, e se logado com sucesso, faz o redirecionamento Mas como, eu nao sei como fazer esta parte imprimir em uma div, so sei com alert(); e queria que aparecesse em uma div a mensagen do echo. Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 19, 2014 Você vai precisar enviar o formulário com ajax, siga este tutorial. Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 19, 2014 Você vai precisar enviar o formulário com ajax, siga este tutorial. ok, vou tentar com ajax. Tenrtei aki e não deu: if(!retorno){ jQuery("#resposta_login").html(msg); return false; } Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 19, 2014 Preciso ver o código completo que faz o envio do formulário. Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 19, 2014 Preciso ver o código completo que faz o envio do formulário. Segue: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt"> <title>:: SISTEMA ::</title> <head> <meta http-equiv="Content-Type" content="text/html; CHARSET=iso-8859-1" /> <link href="css/index.css" rel="stylesheet" type="text/css" /> </head> <body onload="document.getElementById('login').focus()"> <div id="div_geral"> <div class="div_topo"> <a href="principal.php"><img src="imagens/banner_topo.jpg" border="0" /></a> <div class="div_menu"> <ul id="menu"> <li><a href="#">AJUDA</a></li> <li><a href="#">NOVO USUÁRIO</a><ul><li style="width:150px;"><a href="cadastro">CADASTRE-SE</a></li><li style="width:150px;"><a href="#">RECUPERAR SENHA</a></li></ul> </ul> </div> </div> <div class="div_meio"> <script type="text/javascript"> //<!-- não clicar entrar com um dos campos vazios //--> function ValidaLogin(){ var usuario = document.getElementById('usuario'); var senha = document.getElementById('senha'); var retorno = true; var msg; msg = "Erros encontrados:\n\n"; if (usuario.value == ""){ msg+="Preencha o campo CPF.\n" retorno = false; } if (senha.value == "" ){ msg+="Preencha o campo SENHA.\n" retorno = false; } if(!retorno){ jQuery("#resposta_login").html(msg); return false; }else{ document.getElementById('div_login').style.display = "none"; document.getElementById('div_carregando').style.display = "block"; return true; } } </script> <br/><br /> <form id="form_login" action="valida_login.php" method="POST" onsubmit="return ValidaLogin();"> <div align="left" id="div_login" class="div_login" style="display:block"> <span class="txt_login">CPF:</span> <div style="margin-top:5px"></div> <input type="text" name="usuario" id="usuario" value="" size="20" maxlength="20"> <div style="margin-top:5px"></div> <span class="txt_login">SENHA:</span> <div style="margin-top:5px"></div> <input type="password" name="senha" id="senha" size="20" maxlength="20"> <div style="margin-top:5px"></div> <input type="submit" value="ENTRAR"> <input type="reset" value="LIMPAR"> <div style="margin-top:5px"></div> </div> </form> <div align="center" id="div_carregando" class="div_carregando_login" style="display:none"> <img src="imagens/loading.gif" /><br /> <span class="span_carregando_relatorio" id="span_carregando_relatorio">AUTENTICANDO O LOGIN<br /> AGUARDE...</span> </div> <div><p id="resposta_login" align="center"></p></div> </div> </div> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 19, 2014 Tente assim: if(!retorno){ document.getElementById('resposta_login').innerHTML=msg; return false; } Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 19, 2014 Tente assim: if(!retorno){ document.getElementById('resposta_login').innerHTML=msg; return false; } Deu cetinho :) . Submeti o formulário para verificação com ajax, se o usuario nao existe deu certo aparece a mensagem na div. O prolema é que quando informa o usuario e senha cadastrado certinho o ele vai para a pagina logado.php, so que fica uma pagina embaixo da outra, ou seja o index.php não fecha parece que o php não redireciona ele abre a pagina embaixo, ficam duas páginas no meio da tela. index.php <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('#ajax_form').submit(function(){ var dados = jQuery( this ).serialize(); jQuery.ajax({ type: "POST", url: "valida_login.php", data: dados, success: function( data ) { $('#validate_message').html(data); } }); return false; }); }); </script> </head> <body> <form method="post" action="" id="ajax_form"> <label><input type="hidden" name="id" value="" /></label> <label>Usuario: <input type="text" name="usuario" id="usuario" value="" /></label> <label>Senha: <input type="text" name="senha" id="senha" value="" /></label> <label><input type="submit" name="enviar" value="Enviar" /></label> </form> <p id="validate_message" align="left"></p> </div> </body> </html> verifica.php <?php // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { header("Location: index.php"); exit; } // Tenta se conectar ao servidor MySQL mysql_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysql_select_db('adm_login') or trigger_error(mysql_error()); $usuario = mysql_real_escape_string($_POST['usuario']); $senha = mysql_real_escape_string($_POST['senha']); // Validação do usuário/senha digitados $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1"; $query = mysql_query($sql); if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado // Se a verificação julgar que o usuario não existe irá mostrar essa mensagem em javascript echo 'ok'; die(); // equivalente a exit(); — Mostra uma mensagem e termina o script atual } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query); // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['UsuarioID'] = $resultado['id']; $_SESSION['UsuarioNome'] = $resultado['nome']; $_SESSION['UsuarioNivel'] = $resultado['nivel']; // Redireciona o visitante header("Location: logado.php"); exit; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 20, 2014 Quando tem algum erro você imprimi "ok" no php? Então, retire isso: header("Location: logado.php"); do verifica.php e faça isso: success: function( data ){ $('#validate_message').html(data); if (data != 'ok') { location.href="logado.php"; } } Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 20, 2014 É so para exemplo o ok rsrs, vo tentar aqui e posto o resultado. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
gugu3699 1 Denunciar post Postado Agosto 22, 2014 Deu certo!! Obrigado. :D Compartilhar este post Link para o post Compartilhar em outros sites