Ir para conteúdo
abnerndr

Direcionamento de login

Recommended Posts

O login já está no banco de dados , como validar ele e redirecionar caso esteja correto ?

 

 

Eu já criei o banco de dados e tudo mas não consigo redirecionar caso o login esteja correto, já vi em vários forums mas não consegui. Podem me ajudar?

<?php
$host = "mysql:dbname=bd_cad_log;host=localhost";
$user = "root";
$pass = "";

try{
  $pdo = new PDO($host, $user, $pass);
} catch (PDOExecption $e){
    echo "Falha: ". $e->getMessage();
}

$nome = $_POST['nome'];
$senha = md5($_POST['senha']);

$pdo -> query("INSERT INTO tabela_cad WHERE status='1' and nome='$nome' and senha='$senha'");


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@abnerndr

 

Você está fazendo um "INSERT".

 

Você precisa pegar o que veio do seu formulário de login o nome do usuário e a senha, daí você usa a sua conexão com o banco de dados para fazer uma consulta.

 

Veja se o nome de usuário passado existe no banco de dados e veja se a senha passada é idêntica a senha do banco.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem vamos lá!

 

Como o @Thiago Az disse, você está fazendo um INSERT

quando deveria estar realizando um SELECT, assim, não

verificando os dados obtidos via formulário.

 

Segue exemplo de validação de login:

 

SQLs A SER UTILIZADAS

CREATE TABLE admins (
	idAdmin  INT NOT NULL AUTO_INCREMENT,
	nomeAdmin VARCHAR(100) NOT NULL,
	email VARCHAR(255) NOT NULL,
	senha VARCHAR(30) NOT NULL,
	PRIMARY KEY(idAdmin)
);
INSERT INTO admins (nomeAdmin, email, senha) VALUES
('Antônio Roberto', 'antonio007@hotmail.com', 'antonio123'),
('Jaldemir Palhano', 'jaldemir_fbi@hotmail.com', 'senhasuperforte321');

 

CÓDIGO PHP + HTML

<?php

# "VERIFICA SE O FORM FOI EXECUTADO"
if ( $_POST ) {

	# SIMPLE CONN
	$pdo = new PDO ( 'mysql:dbname=SEU_BANCO;host=localhost', 'username', 'password' );

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

	# PREPARA A SQL
	$step1 = $pdo->prepare ( 'SELECT * FROM admins WHERE email = ? AND senha = ?' );
	# "COLOCA OS PARÂMETROS"
	$step1->bindValue ( 1, $email );
	$step1->bindValue ( 2, $senha );
	# EXECUTA A SQL
	$step1->execute ();

	# "RETORNA OS DADOS DA CONSULTA"
	# NO FORMATO DE OBJETO
	$retorno_login = $step1->fetch ( PDO::FETCH_OBJ );

	# VERIFICA SE FOI ENCONTRADO ALGO
	# CASO CONTRARIO ENVIA O USUÁRIO
	# A UMA PÀGINA DE ERRO
	if ( $retorno_login !== false ) {

		# LOGIN EFETUADO!!!
		# AGORA ENVIA O USUARIO PARA A 
		# PÀGINA DE PERFIL
		header ( 'Location: meu_perfil.php' );

	} else {

		# LOGIN NÂO EFETUADO!!!
		echo "E-Mail ou Senha incorretos!";

	}
}

?>

<!DOCTYPE HTML>
<html>
	<head>
		<title> EXAMPLE </title>
	</head>

	<body>
		<form action="#" method="post">
			<label>E-Mail:</label>
			<input type="email" name="email" placeholder="Digite seu Email" />

			<br />

			<label>Senha:</label>
			<input type="password" name="senha" placeholder="Digite sua Senha" />

			<br />

			<input type="submit" value="Verificar" />
		</form>
	</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Klash1
      Eae galera!

      Estou fazendo uma página de login e estou com um pequeno problema. Gostaria de saber como mostrar a mensagem de Usuário ou senha incorreta, em baixo do formulário. No meu, está abrindo a página em branco e dando a mensagem de erro.

      Quero que aparece a mensagem de erro, aqui:
       

       
      Porém, está aparecendo assim:
       

       
      Código index.php:
       
      <!DOCTYPE html> <head> <meta charset="utf-8"> <title> Área Restrita - Hércules </title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link href="bootstrap/css/style.css" rel="stylesheet"> </head> <body background="bootstrap/img/bc.jpg" style="max-width: 100%; height: auto;" class="login"> <div class="login-page"> <div class="form"> <form method="post" action="login.php"> <img src="bootstrap/img/perfil.png" class="rounded" alt="Login"> <input type="text" name="email" placeholder="Email" required></br> <input type="password" name="senha" placeholder="Senha" required></br> <button type="submit" class="btn btn-success btn-lg btn-block">Entrar</button> </form> </div> </div> </body> </html>  
      Código login.php
       
      <?php include("conexao.php"); if(isset($_POST['email']) && isset($_POST['senha'])){ $email = $_POST['email']; $senha = $_POST['senha']; $teste = md5($senha); $get = mysql_query("SELECT * FROM usuarios WHERE email = '$email' AND senha = '$senha'"); $num = mysql_num_rows($get); if($num == 1){ while($percorrer = mysql_fetch_array($get)){ $adm = $percorrer['adm']; $nome = $percorrer['nome']; session_cache_expire(10); session_start(); if($adm == 1){ $_SESSION['adm'] = $nome; } else{ $_SESSION['nor'] = $nome; } echo '<script type="text/javascript">window.location = "index.html"</script>'; } }else{ echo "Email ou senha incorreta"; } } ?>  
      Obrigado pela ajuda!
×

Informação importante

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