Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gugu3699

Retorno verificação php

Recommended Posts

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

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

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

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

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

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

 

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.