Ir para conteúdo
Fórum Script Brasil
  • 0

rodolforj

Pergunta

Olá galera!

Eu uso um sisteminha em php e ele roda direitinho, mas queria que ele tivesse uma função que eu não consigo fazer, já tente várias vezes mas sempre da erro. Alguém pode me ajudar?

Queria que quando o usuário tentasse logar e desse erro pelo motivo de login ou senha incorreto tivesse algum tipo de notificação em tela, tipo dados invalidos, atualmente quando o Usuário erra ele somente permanece na tela login e nada acontece.

Abaixo o Código.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<html>
<head>
<title>Online PHP Script Execution</title>
</head>
<body>
<?php
// Inclui o arquivo com o sistema de segurança
include("seguranca.php");
// Verifica se um formulário foi enviado
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Salva duas variáveis com o que foi digitado no formulário
// Detalhe: faz uma verificação com isset() pra saber se o campo foi preenchido
$usuario = (isset($_POST['usuario'])) ? $_POST['usuario'] : '';
$senha = (isset($_POST['senha'])) ? $_POST['senha'] : '';
// Utiliza uma função criada no seguranca.php pra validar os dados digitados
if (validaUsuario($usuario, $senha) == true) {
// O usuário e a senha digitados foram validados, manda pra página interna
header("Location: index.php");
} else {
// O usuário e/ou a senha são inválidos, manda de volta pro form de login
// Para alterar o endereço da página de login, verifique o arquivo seguranca.php
expulsaVisitante();
}
}
echo "<h1></h1>";
?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

cara seria tipo um alerta?

voce pode usar um js basico tipo echo"<script>alert('Usuario ou senha incorretos!');</script>";

Amigão, se não for pedir muito onde no código eu coloco esse alert..? Brigadao!

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Rodolforj,
Pode fazer da maneira abaixo,coloque a query dentro de uma variável e use a função mysql row para checar se a query foi feita com sucesso ou não,caso não tenha sido feita daí coloque a mensagem de erro:
$usuario = mysql_real_escape_string($_POST['usuario']);
$senha = mysql_real_escape_string($_POST['senha']);
$verifica = mysql_query("SELECT * FROM login WHERE usuario ='".$usuario."' AND senha = '".$senha."'") or die("erro ao selecionar");
if (mysql_num_rows($verifica)<=0)
{
echo"<script language='javascript' type='text/javascript'>alert('Login e/ou senha incorretos');window.location.href='/logincursos.html';</script>";
exit();
}
Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Olá Rodolforj,
Pode fazer da maneira abaixo,coloque a query dentro de uma variável e use a função mysql row para checar se a query foi feita com sucesso ou não,caso não tenha sido feita daí coloque a mensagem de erro:
$usuario = mysql_real_escape_string($_POST['usuario']);
$senha = mysql_real_escape_string($_POST['senha']);
$verifica = mysql_query("SELECT * FROM login WHERE usuario ='".$usuario."' AND senha = '".$senha."'") or die("erro ao selecionar");
if (mysql_num_rows($verifica)<=0)
{
echo"<script language='javascript' type='text/javascript'>alert('Login e/ou senha incorretos');window.location.href='/logincursos.html';</script>";
exit();
}

Dando erro! Pode colocar o código fornecido acima já dentro do meu código? Quebra essa ai, a variável ta dando erro! Brigadão!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá rodolforj,

Criei um exemplo aparentemente complexo, mas profissional, o que poderá te ser útil futuramente.

Se estudares com calma o código farás um bom trabalho.

O código está todo comentado. Qualquer dúvida, disponha-se.

1. - Vamos ao HTML [index.html]:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Exemplo Login e Aviso de Erro</title>
	</head>

	<body>
		<form method="post" action="login.php" name="login" id="login">
			User:<input type="text" placeholder="User" name="user" id="user"><br>
			Pass:<input type="text" placeholder="Pass" name="pass" id="pass"><br>
			
			<button type="button" name="btn_enviar" id="btn_enviar">
				Entrar
			</button>
		</form>
		<!-- Onde vai aparecer o aviso ao utilizador -->
		<span id="aviso"></span>
		<!-- A requisição ajax será feita com jQuery, por isso deverá ser incluído -->
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
		<!-- Inclusão do script responsável para mostrar as mensagens na tela -->
		<script src="script.js"></script>
	</body>
</html>

2. - Agora vamos ao Ajax, que enviará seus dados ao PHP, sem sair da página [script.js]

$("#btn_enviar").click(function(){ //ID Botão enviar
    $("#login").submit(function(e) //ID formulário
    {
        var postData = $(this).serializeArray();
        var formURL = $(this).attr("action");
        $.ajax(
        {
            url : formURL,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR) 
            {
                $("#aviso").text(data);
                if(data == 'Login bem sucedido.')
                {
			window.location.href = "local/para-onde-vais/depois-do-login";
                }
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                $("#aviso").text("Erro de requisição. Contacte o administrador do sistema.");      
            }
        });
        e.preventDefault();
        e.unbind();
    });
    $("#login").submit(); //Submissão do formulário via ID
});

3. - Por último vamos ao código PHP [login.php]

<?php
	// Ligação com banco de dados
	header('Content-Type: text/html; charset=UTF-8');
	$db_user = 'seu_user';
	$db_pass = 'seu_pass';
	try
	{
		$db = new PDO('mysql:host=localhost;dbname=nome_banco_dados;charset=utf8',$db_user, $db_pass );
	}
	catch(PDOException $e)
	{
		die('Impossível ligar-se ao banco de dados. Contacte o administrador do sistema.');
	}
	//===============================================================
	
	// Mensagem enviada quando login for bem sucedido.
	$mensagemSucesso = "Login bem sucedido.";
	
	// Verificando os dados enviados da pagina HTML estão preenchidos.
	if(empty($_POST['user']) || empty($_POST['pass']))
	{
		// Erro se um dos campos estiverem vazios.
		die('Campos vazios.');
	}
	else
	{
		// Levando em conta que o utilizador é um endereço de email
		// este codigo verifica se o email é válido.
		if(filter_var($_POST['user'], FILTER_VALIDATE_EMAIL))
		{
			// Se tudo estiver correcto os campos são atribuidos às variáveis.
			$user = $_POST['user'];
			$pass = $_POST['pass'];
		}
		
		// Iniciar a comparação entre os dados fornecidos
		// via o formulário HTML e os dados guardados no banco de dados
		foreach($db->query("SELECT * FOM tabela_utilizador WHERE user = '".$user."' AND pass = '".$pass."'") as $reg);
		
		// Caso os dados não coincidem o script para e retorna
		// uma mensagem ao utilizador
		if($user != $reg['email'] || $pass != $reg['pass'])
		{
			die('Nome de Utilizador ou Password incorrectos.');
		}
		else
		{
			// Caso os dados estejam correctos, inicia a sessão
			// podendo resgatar outros dados da consulta no banco.
			session_start();
			$_SESSION['nome']		= $reg['nome'];
			$_SESSION['user']		= $reg['user'];
			$_SESSION['cidade']		= $reg['cidade'];
			
			// Quando o login for efectuado correctamente
			// uma mensagem é mostrada ao utilizador
			echo $sucesso;
		}
	}
?> 

É claro que existem formas bem mais profissionais, mas este já ajuda.

Editado por Giovannio
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...