Ir ao conteúdo
  • Cadastre-se

PHP mysqli_query login em banco de dados


Posts recomendados

o código ainda não funcional, esta assim

<?php



	error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);
	
	$conectar = mysqli_connect ("localhost","root","","bancophp") or
	die ("Não foi possível conectar no servidor de Banco de Dados");
 if (mysqli_connect_errno())
  {
  echo "Falha em conectar com o Banco de dados: " . mysqli_connect_error();
  }
?>
<?php
/* conexao com o banco de dados, no arquivo conexao.php*/
	session_start();
include "conexao.php";

/*receber o login e a senha*/
$login = $_POST ["login"];
$senha = $_POST["senha"];

/*verifica se o login e a semha baten no bd */
$pesquisa = mysqli_query($conetar,"SELECT login_user, senha_user FROM usuario WHERE BINARY
											
								login_user = '$login' 
								AND senha_user = 
								'$senha'");
								
								$linhas = mysqli_num_rows ($pesquisa);
								
								/* se bater entra se nao retorne!!! */
					if ($linhas == true) {
						$_SESSION["login"] = $login;
						echo "<script>
						location.href = ('administracao.php')
						</script>
						";
					} 
					else {
						echo "<script>
						 alert ('LOGIN OU SENHA INCORRETO ! INFORME NOVAMENTE LOGIN E SENHA') 
						 </script>
						 <script>
						 location.href = ('index.php')
						</script>
						";
					}

ele roda dizendo que o login e a senha estão incorretos e depois aparece o erro na linha da $senha 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Augusto G rocha Bom.. o que eu vejo de anormal ali é aquele BINARY. Retira ele. você não precisa disso para fazer o select na tabela.

A comparação das linhas também pode retirar.

Tem um outro jeito melhor de se fazer a comparação, além disso o location ali você pode fazer de outra forma:

 

Arquivo conexão.php

<?php
$conexao = mysqli_connect("localhost","root","","bancophp");

Sim, apenas estas duas linhas.  E deixe a última linha sem o fechamento da tag do PHP. Porque se houver erro, ele vai avisar e encerrar.

PS: retire do seu código os  error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED); 

 

Arquivo que recebe os dados vindos dos campos login e senha

session_start();
	
$login = $_POST["email"];
$senha = $_POST["senha"];
	
//adiciona barras para evitar SQL injection
$loginSeguro = addslashes($login);
$senhaSegura = addslashes($senha);
	
//testa para saber se os campos estão vazios
if (empty($login) or empty($senha)):
    echo "<script>
          alert('Preencha todos os campos');
          history.go(-1);
          </script>";
    exit;    
endif;
	
//inclui a conexao	
include 'conexao.php';
	
//consulta ao banco de dados
$dados = mysqli_query($conecta, "SELECT id_user,
                                        login_user,
                                        senha_user 
                                 FROM usuario WHERE email ='$loginSeguro' 
                                 AND senha = '$senhaSegura' ");

//armazena na variável o número de linhas encontradas
$num = mysqli_num_rows($dados);
	
//se zero, é porque ele errou a senha ou o login
if ($num == 0):
	echo "<script>
			alert('Usuario ou senha Incorreta');
			history.go(-1);
			 </script>";
	exit;
else :
    
    //armazena a função fetch_object onde é tratado como objeto
	$linha = mysqli_fetch_object($dados);

    //armazena na variável o número ID do usuário 
	$coduser = $linha->idUsuario;
		
    //armazena na sessão o ID do usuário logado 
	$_SESSION["codusuario"] = $coduser;

    //armazena na sessão o nome do login.
    //aqui pode ser e-mail, login, nome do usuário e etc.
	$_SESSION["email"] = $login;
		
	//manda o usuário para a páginas depois de logado		
	header ("Location: sua_pagina.php");
endif;

 

Agora que vem o pulo do gato:

 

Na sua_pagina.php aquela que vem depois do login adicione isto  bem no inicio acima do <html>:

<?php
session_start();
setcookie("ck_authorized", "true", 0, "/");

/*testa se a sessão tem valor.
  Refere-se a linha lá no arquivo de login onde
  é inserido o login na sessão. */
if(!isset($_SESSION["login"])):
    header("location: index.php");
else:
    $login = $_SESSION["login"];
endif;    
?>

Este último código faz com que SE não houver sessão, jogue o usuário de volta para a tela de login sem poder burlar o sistema.

 

PS: recomendo que não apenas copie estes códigos, mas sim estude eles e implemente no seu! assim você aprende!

Link para o comentário
Compartilhar em outros sites

consegui resolver aqui, parece que o problema estava no 

$conectar = mysqli_connect

e o 

$validar_login = mysqli_query($conectar,....

que tinham que ser iguais, segue o código funcionando. acho que quebrei um monte de normas técnicas e procedimentos mas depois eu arrumo esses detalhes.

 

<?php
$conectar = mysqli_connect("localhost","root","","bancophp");
<?php
/* conexao com o banco de dados, no arquivo conexao.php*/
	session_start();
include "conexao.php";

/*receber o login e a senha*/
$login = $_POST ["login"];
$senha = $_POST["senha"];

$loginSeguro = addslashes($login);
$senhaSegura = addslashes($senha);

/*verifica se o login e a semha baten no bd */

$validar_login = mysqli_query($conectar,"SELECT login_user FROM usuario WHERE login_user = '$loginSeguro '");
$validar_senha = mysqli_query($conectar,"SELECT senha_user FROM usuario WHERE senha_user = '$senhaSegura'");								
								$linha1 = mysqli_num_rows ($validar_login);
								$linha2 = mysqli_num_rows ($validar_senha);
								
								/* se bater entra se nao retorne!!! */
					if ($linha1 == true and $linha1 == true ) {
						$_SESSION["login"] = $login;
						echo "<script>
						location.href = ('administracao.php')
						</script>
						";
					} 
					else if ($linha1 == false ) {
						echo "<script>
						 alert ('$login Não encontrado ! INFORME NOVAMENTE O LOGIN') 
						 </script>
						 <script>
						 location.href = ('index.php')
						</script>
						";
					}
						else if ($linha2 == false ) {
						echo "<script>
						 alert ('$senha INCORRETO ! INFORME NOVAMENTE SENHA') 
						 </script>
						 <script>
						 location.href = ('index.php')
						</script>
						";
					}





?>

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...