Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Augusto G rocha

PHP mysqli_query login em banco de dados

Recommended Posts

$pesquisa = mysqli_query("SELECT 
	                      login_user,senha_user 
						  FROM usuarios
						  WHERE
						  BINARY
						  login_user = '$login' AND
						  senha_user = '$senha'");

Não sei se é um probema com o $ ou mas a ultima linha esta errada.

Captura de Tela (50).png

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Augusto G rocha Não sei o resto do código, mas o mysqli_query() espera dois parâmetros.  O que está faltando é a conexão.

A sintaxe correta é:  

mysqli_query($conexao, "sua instrução SQL aqui");

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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 

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @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!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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>
    						";
    					}
    
    
    
    
    
    ?>

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Augusto G rocha Sim, espero que arrume! pois não tem sentido fazer duas consultas SQL na mesma tabela e as validações de usuário e senha. 

     

    use o modelo que postei acima. 

    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






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×