Jump to content
ricardonews

como logar no banco com senha criptografada

Recommended Posts

olá pessoal, alguém ja teve dificuldade de logar no banco com um formulario de login feito pelo ajax quando a senha é criptografada?

a minha está o sendo pelo md5 e quando deixo sem criptografia eu logo no banco.  Eu gostaria de logar com criptografia.

vou deixar  a index e o arquivo que busca no banco de dados

<!doctype html>
<html>
<?php
    require_once"config.php";
?>
    <head>
        <title>Formulario de login</title>
        <style type="text/css">
        html{
            height:100%;
            background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9));
        }
        #div_login{
            width:500px;
            margin:40px auto;
            position:relative;
            background-color: #ffffff;
            padding: 20px;
            border-radius: 5px;
        }
        #message{
           width:100%;
           text-align:center;
           color:red;
           margin-bottom: 20px;
        }
        #div_login h1 {
            text-align: center;
        }
        #div_login input, #div_login textarea,#div_login a{
            padding:10px;
            border:1px solid rgba(38, 128, 101, 0.9);
            border-radius:4px;
            -moz-border-radius:4px;
            -webkit-border-radius:4px;
            outline:none;
            box-sizing: border-box;
            width:100%;
            font:14px "Trebuchet MS", tahoma, arial;
            color:#090;
            margin-bottom:10px;
        }
        #div_login #but_submit,#div_login a {
            background-color: #27ae60;
            font-weight: bold;
            text-transform: uppercase;
            color: #ffffff;
            width: auto;
            margin: 0;
            padding: 10px 20px;
        }
        </style>
        <!--<link href="style.css" rel="stylesheet" type="text/css">-->

        <script src="jquery-3.2.1.min.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function(){

                $("#but_submit").click(function(){
                    var username = $("#meu_nome").val().trim();
                    var password = $("#minha_senha").val().trim();

                    if( username != "" && password != "" ){
                        $.ajax({
                            url:'pesquisar.php',
                            type:'post',
                            data:{username:username,password:password},
                            success:function(response){
                                var msg = "";
                                if(response == 1){
                                    window.location = "home.php";
                                }else{
                                    msg = "email e senhas invalidos!";
                                }
                                $("#message").html(msg);
                            }
                        });
                    }
                });

            });
        </script>
    </head>
    <body>
        <div class="container">

            <div id="div_login">
                <h1>Login</h1>
                <div id="message"></div>
                <div>
                    <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="email" />
                </div>
                <div>
                    <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="senhas"/>
                </div>
                <div>                    
                    <input type="button" value="logar" name="but_submit" id="but_submit" />
                    <a href="inicio.php"><strong>Cadastrar</strong></a>
                </div>
            </div>

        </div>
    </body>
</html>

agora vem oque busca os dados no banco e é justamente essa parte que eu não entendo oque acontece.


<?php
    require_once "config.php";
 // AQUI É O PESQUISAR PHP
$uname = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);


if ($uname != "" && $password != ""){

    $sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE email='".$uname."' and password='".$password."'";
    $result = mysqli_query($con,$sql_query);
    $row = mysqli_fetch_array($result);

    $count = $row['cntUser'];

    if($count > 0){
        $_SESSION['uname'] = $uname;
        echo 1;
    }else{
        echo 0;
    }

}

desde já fico agradeço 

Share this post


Link to post
Share on other sites

@ricardonews 

 

Quando você faz o cadastro do usuário você tem que salvo a senha criptografada do usuário, assim quando o usuário digitar a senha e você fazer a citografia da senha ela deve bater com a salva no banco de dados.

 

Você nunca deve salva a senha do usuário pura no banco de dados!

Share this post


Link to post
Share on other sites

Grabielms, desculpa por não ter sido específico na pergunta. Mas na verdade essa parte eu entendo eu até reformulei a pergunta,  estou pensando em usar outra criptografia de senha, mas oque estou com dificuldade é de logar no banco com criptografia na senha, eu fiz um modelo de login mas deu erro exatamente por causa que não reconhecia a senha criptografada,  eu fiz uma busca na net mas não achei nada parecido que me ajude, se puder me ajudar  nessa, eu fico grato. desculpa pelos erros.

Share this post


Link to post
Share on other sites

eu não entendi direito, mas a onde que eu uso isso? é  sem eu ultilizar o ajax funciona normal o login com senha criptografada, eu ja fiz vários projetos com ele, mas agora com ajax é que estou com essa dificuldade.

Share this post


Link to post
Share on other sites

Criar o hash durante o cadastro

$senha = password_hash("sua_senha", PASSWORD_DEFAULT);

Armazene a variável $senha no banco

 

Conferir se a senha bate durante o login:

if (password_verify("senha_digitada", "senha_do_banco_armazena_vinda_da_query")) {

   // Senha confirmada

}

 

https://www.php.net/manual/pt_BR/function.password-hash.php

Share this post


Link to post
Share on other sites

eu tentei usar essa criptografia no cadastro, mas não funcionou. mas eu acredito que tudo é jquery ou ajax, porque eu fiz vários login, cadastro normal e funciona. agora a unica que funcionou gravando senha no banco foi  a que coloco md5. eu uso uma vareavel que recebe o array json com todos os dados e distribui nos campos.  eu aqui tem umas imagems. mas o login era para reconhecer a criptografia md5 e logar no banco como no procedimento normal de php sem envolver ajax e jquery.

 

IMASTER1.png

IMASTER.png

Share this post


Link to post
Share on other sites

Osmar, resolvido! oque estava faltando era especificar no login a criptografia do banco. neste caso era a md5 o cadastro foi feito com ela.porem eu vou mudalo para outra, mas segue a regra se o cadastro é em uma criptografia, o login precisa ser a mesma criptografia. como eu não havia especificado nada. ele só pegava a senha sem criptografia e a que estava criptografada ele não reconhecia. depois de fazer um login em php que eu lembrei que nesse faltava a criptografia do banco e foi quando resolvi o problema e eu pensando que era o ajax rsss. mas obrigado a todos pelas dicas.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By drx
      Olá pessoal!
      Estou com um probleminha aqui. Estou me embrenhando pelos ajax e jquery. Muito interessante. 
      Eu peguei um exemplo e é bem simples. Só que não retorna a mensagem para a div.
       
      Eu tenho uma div em pagina1.php onde o usuário entra com um número identificador em um campo textfield.
      Após entrar com o número identificador, solicito a verificação em uma outra página.php onde tenho uma consulta no mysql.
      O echo da consulta é: Existente ou Inexistente. A consulta é feita pelo número identificador. Fiz a verificação e retorna perfeitamente,
      Porém eu quero que ao verificar, a mensagem retorne para minha outra div logo abaixo na pagina1.php
      Vou passar o código para facilitar....
       
      <html>
      <head>
       
      <script src="js/jquery.js"></script>
      <script>
      $(function(){
        $('#form').submit(function(){
           $.ajax({
             url: 'x_consultar_patro.php',
             type: 'POST',
             data: $('#form').serialize(),
             success:function ( data ) {
                 if (data != '') {
                     $('#frm_cadastro').html( data );
                 }
               }
             });
           return false;
         });
      });
      </script>
       
      </head>
       
      <body>

      <div id="frm_cadastro"></div>

      <form id="form" method="post" action="">
        <input type="text" name="codpatro" id="codpatro"/>
        <input type="submit" name="btn_procurar" id="btn_procurar" value="Procurar"/>
      </form>
       
      </body>
      <html>
       
       

    • By kelvinferraz
      Boa tarde Pessoal tudo bem?
       
      Estou criando uma aplicação basica para um usuario logar e acessar os dados dessa aplicação via um dashboard. 
       
      Surgiu uma dúvida, eu gostaria de publicar isso para que qualquer usuario possa acessar via web por exemplo: www.meusite.com/login
       
      A partir desse login defeniria qual base de dados esse usuário esta vinculado, por exemplo:
       
      O usuário acessa a area de login do site:
      Login: UsuarioX ------> Conecta ao db_usuariox
       
      Login:UsuarioY -------> Conecta ao db_usuarioy
       
      Como posso fazer isso?
       
      Estou aprendendo mais afundo PHP agora, então se puderem me dar uma dica e uma forma simples para entendimento ficarei grato.
    • By Juan Barcelos
      Galera bom dia !
      Estou desenvolvendo um projeto no qual o usuario ao fazer o 1º login tem que criar um personagem e depois seguir ao menu do sistema.
      Ao efetuar o 2º Login se o usuario já possuir um personagem pode seguir direto para o menu do sistema caso contrario vai para a criação do personagem.
      Eu nao estou conseguindo relaziar esta condição estou utilizando baco de dados mysql(PHPMyadmin) ja tentei de varias formas alguem poderia me ajudar.
       
    • By Luckshor
      Olá pessoal, tudo bem?
       
      Sou iniciante no MySQL, essa semana veio uma dúvida de 10 milhões de dólares.
       
      O Chefinho querido me entregou uma planilha excel com 554 mil registros e me pediu para inserir isso na tabela para fazer levantamento de algumas informações.
      Aiiii me vêm aquele dúvida...
       
      Fazer 554 mil INSERT INTO (') ???
       
      INSERT INTO `tab_teste_cliente` (`id_cliente`, `cnpj`, `razao_social`) VALUES ('NULL,'12345678901234','Empresa Linda');

      Massssss... quando eu exporto uma tabela no MySQL, ele faz aqueles inserts com 200 valores.
      Isso torna o INSERT mais rápido é melhor certo?

      Então há alguma forma de converter o Excel para um arquivo SQL com esses Inserts múltiplos e facilitar minha vida?  
      Algum site, script, gambiarra, subterfúgio técnico ou contato divino para fazer isso?
       
       
      Obrigado, pela ajuda pessoal até mais!
    • By Wallinson_Viana
      Estou com dificuldades em gravar os dados de um formulário no cPanel da HostGator. No meu servidor local funciona perfeitamente, porém quando subo dá erro.
       
      conn_server.php:
       
      <?php
        $host = "localhost";
        $usuario ="my user";
        $senha ="senha db";
        $db="nome db";
        
      ini_set('default_charset', 'UTF-8');

      $mysqli = new mysqli($host, $usuario, $senha, $db);

      $mysqli->query("SET NAMES utf8");
       
        if ($mysqli->connect_errno)
        echo "Falha na conexão (".$mysqli-connect_errno.") ".$mysqli-connect_error;
      ?>
       
      cadastrar.php:
       
      <?php
        require_once("../server/conn_server.php");
      if (isset($_POST['enviar'])){

              date_default_timezone_set('America/Sao_Paulo');
              $emailn='Não definido';
              $cel='Não definido';
              $service='Não definido';
              $msg='Solicito contato comigo!';
              $date=date('d/m/20y | H:i:s');
              $orc='Não definido';
              $situacao='Pendente';
              $nome=$_POST['nome'];
              $email=$emailn;
              $telefone=$_POST['telefone'];
              $celular=$cel;
              $servico=$service;
              $mensagem=$msg;
              $data=$date;
              $orcamento=$orc;
              $status=$situacao;

              $comando="INSERT INTO mensagens (id,
                nome,
                email,
                telefone,
                celular,
                servico,
                mensagem,
                data,
                orcamento,
                status) VALUES
                      (null, '$nome', '$email', '$telefone', '$celular', '$servico', '$mensagem', '$data', '$orcamento', '$status')";
              $cadastrar=mysqli_query($conn, $comando);
              if ($cadastrar == true) {
                echo "<script>alert('Mensagem enviada com sucesso!');";
                echo "javascript:window.location='../index.php';</script>";
              }
              else {
              echo "<script>alert('Houve um erro ao gravar. O seguinte erro ocorreu->');";
              echo "javascript:window.location='../index.php';</script>";
            }
          }
      ?>
       
      form.html
       
      <form action="controller/solcontato.php" method="post" class="js-validate">
                <div class="card-body p-5">
                  <!-- Input Group -->
                  <div class="mb-4">
                    <label class="h6 small d-block text-uppercase mb-2">
                      Seu nome
                    </label>
                    <div class="js-form-message">
                      <div class="input-group">
                        <input type="text" class="form-control" name="nome" placeholder="Digite seu nome" aria-label="Phone number" aria-describedby="phoneNumber" required
                               data-msg="Por favor, digite o seu nome."
                               data-error-class="u-has-error"
                               data-success-class="u-has-success">
                      </div>
                    </div>
                  </div>
                  <!-- End Input Group -->
                  <!-- Input Group -->
                  <label class="h6 small d-block text-uppercase mb-2">
                    Telefone
                  </label>
                  <div class="js-form-message js-focus-state">
                    <div class="input-group">
                      <div class="input-group-prepend" id="phoneNumber">
                        <span class="input-group-text">+55</span>
                      </div>
                      <input type="text" class="form-control" name="telefone" placeholder="Digite seu telefone" aria-label="Phone number" aria-describedby="phoneNumber" required
                             data-msg="Por favor, digite um numero de telefone válido."
                             data-error-class="u-has-error"
                             data-success-class="u-has-success">
                    </div>
                  </div>
                  <!-- End Input Group -->
                </div>
                <!-- Card Footer -->
                <div class="card-footer py-3 px-5">
                  <div class="d-flex justify-content-end">
                    <button name="enviar" type="submit" class="btn btn-sm btn-primary transition-3d-hover mr-1">Enviar</button>
                    <button type="submit" class="btn btn-sm btn-soft-secondary transition-3d-hover" onclick="Custombox.modal.close();">Cancelar</button>
                  </div>
                </div>
                <!-- End Card Footer -->
              </form>
       
      Se alguém puder me ajudar agradeço.
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.