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 Agnosticado
      Olá senhores, estou intrigado com uma coisa: tenho o seguinte código:
       
      $pesquisa = "SELECT motivo, CASE WHEN motivo = 'Intensa superposição celular em mais de 75% de esfregaço' THEN 'A' WHEN motivo = 'Sangue em mais de 75% de esfregaço' THEN 'B' WHEN motivo = 'Artefatos de dessecamento mais de 75% de esfregaço' THEN 'C' ELSE 'TESTE' END AS opcao FROM insatisfatorio WHERE exame_id = '1' ORDER BY opcao ASC"; quando o executo diretamente no SGBD (PHPMyAdmin) dá certo e tenho a coluna "opcoes" me mostrando a opção "A" como previsto.
      No entanto, quando acrescento:
      $linha = mysql_query($pesquisa); while ($pesquisa = mysql_fetch_array($linha) or die(mysql_error())){ echo $pesquisa["opcao"]; echo "<br>"; na página PHP para exibir o resultado, o código só me retorna a string "TESTE".
       
      NÃO SEI MAIS O QUE FAZER PQ PARECE TÁ TUDO OK!
      O QUE DIABOS ACONTECE?
    • By gust.php
      Prezados, boa noite.
       
      Nunca fiz isso e estou dúvidas.
       
      Tenho as tabelas CATEGORIAS e SUBCATEGORIAS. Os cadastros e relacionamentos estão funcionando perfeitamente, tudo ok aqui.
      Tenho também a tabela PRODUTOS.
       
      Digamos que eu tenha produtos que fazem parte de categorias que não tem subcategoria, e tenho produtos que fazem parte de subcategorias de alguma categoria.
       
      Como fazer o relacionamento desses produtos?
       
      Vou relacionar a tabela PRODUTOS com CATEGORIAS e SUBCATEGORIAS ?
      A dúvida surgiu pois um produto pode fazer parte de uma categoria que não tem subcategoria, mas posso ter também produtos que fazem parte de subcategorias de uma categoria.
      E qual a cardinalidade desse relacionamento?
       
      Ja vi gente fazendo o relacionamento só com SUBCATEGORIA, mas e se não existir subcategoria????
       
      produto many to many categoria
      produto many to many subcategoria
       
      produto
      id | produto 
       
      prod_cat
      cat_id | prod_id
       
      categoria
      id | categoria 
       
      subcategoria
      id | categoria 
       
      prod_subcat
      subcat_id | prod_id
       
      Como resolver isso de um forma correta?
    • By danicarla
      Oi gente.. tenho uma tabela de endereços e uso php para fazer dois loops para exibir as cidades e depois os bairros daquela cidade,
      fica algo + ou - assim:
      $a = mysql_query('SELECT nome_cidade FROM tab GROUP BY nome_cidade'); while($b = mysql_fetch_array($b)){ echo $b['nome_cidade'].'<br>'; $c = mysql_query('SELECT nome_bairro FROM tab WHERE nome_cidade='$b[nome_cidade]' GROUP BY nome_bairro'); while($d = mysql_fetch_array($c)){ echo $d['nome_bairro'].'<br>'; } } Alguém sabe se eu consigo fazer isso somente com uma consulta? pra não precisar incluir um loop dentro do outro
    • By Agnosticado
      Olá senhores, estou intrigado com uma coisa: tenho o seguinte código:
      $id_exame = "50296"; $pesquisa = "SELECT motivo, CASE WHEN motivo = 'Intensa superposição celular em mais de 75% de esfregaço' THEN 'A' WHEN motivo = 'Sangue em mais de 75% de esfregaço' THEN 'B' WHEN motivo = 'Artefatos de dessecamento mais de 75% de esfregaço' THEN 'C' ELSE 'TESTE' END AS opcao FROM insatisfatorio WHERE exame_id = '$id_exame' ORDER BY opcao ASC"; $linha = mysql_query($pesquisa); while ($pesquisa = mysql_fetch_array($linha) or die(mysql_error())){ echo $pesquisa["opcao"]; } Quando executo usando
       
      $linha = mysql_query($pesquisa);
                 while ($pesquisa = mysql_fetch_array($linha) or die(mysql_error())){
              echo $pesquisa["opcao"];
              echo "<br>";
       
       
      a saída é palavra "TESTE" que o default e não o texto "B" que corresponde a string da chamada do $id_exame = 50296.
       
      O ESQUISITO é que quando executo todo select que está na variável $pesquisa direto no SGBD dá certo e o texto "B" aparece normalmente.
      PQ DIABOS ISSO ACONTECE???
    • By Gemenson Miranda
      Oi pessoal, estou com um problema na minha hospedagem LInux do Godaddy, publiquei meu site, fiz o apontamento correto do banco de dados, mas quando acesso a URL o site me exibe HTTP ERROR 500 exibe realizei a configuração do arquivo .htaccess, alterei as permissões para (755), nada disso resolve... A questão e que sempre que comento as informações de apontamento do banco de dados no arquivo index.php o site carrega normalmente, porem sem conexão com o bando mysql, o que me faz pensar que o erro pode esta relacionado ao banco mysql, porem não consigo visualizar o erro por que a tela fica toda branca e não retorna nada, como resolver esse erro ou ao menos exibir qual erro causa ele?? agradeço!
×

Important Information

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