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 manoaj
      Boa noite pessoal!
      Alguém ai entente dos checkouts do Mercado Pago pra me explicar como eu obtenho os dados da preferência criada através da url disponível na API
      https://api.mercadopago.com/checkout/preferences/:id?access_token=ACCESS_TOKEN_ENV  
    • By FabianoSouza
      Tenho a function A, que captura valores e os transfere para a function B (que é um AJAX).
       
      Preciso que a function B passe seu resultado para a function A. Creio que precise de um callback. Mas não estou sabendo com estruturar isso.
      Vejam como estão os códigos:
       
      FUNCTION A
      function upDateRating(e) { var $alvoClick = getTarget(e) , $ul = $alvoClick.parentNode , $idItem = $alvoClick.parentNode.parentNode.parentNode.parentNode.id , $valRating = $alvoClick.value var $array = [ { idItem:$idItem , favorito: 1 , rating: $valRating } ] upDateCard($array) }  
      FUNCTION B (AJAX)
      function upDateCard(e) { var $array = e , $dados = JSON.stringify($array); function ajax() { var $obj = createXMLHTTP(); $obj.open('post', 'minhaPagina', true); $obj.setRequestHeader('content-type', 'application/x-www-form-urlencoded'); $obj.onreadystatechange=function(){ if ($obj.readyState == 4 && $obj.status == 200){ try { var $strResp = JSON.parse($obj.responseText); } catch(e) { alert('Erro. Dados em formato inválido.') return false; } return $strResp //PRECISO PASSAR ESSE VALOR DE VOLTA PARA A FUNCTION A } } $obj.send(encodeURI('str='+$dados)) } ajax() }  
       
    • By gersonab
      Bom dia, tenho um select onde gostaria de ordenar o mesmo pelo dia do campo date , segue o mesmo 
      $mesatual = date("m"); $consulta = $pdo->query("SELECT * FROM cli WHERE MONTH(datan) = '$mesatual' ORDER BY DAY(datan) ASC"); não esta ordenando o mesmo, teria de ser pelo dia, pois o mês vai ser sempre o atual e o ano varia conforme data de nascimento.
       
      exemplo de como esta aparecendo :
      18/07/2019
      14/07/2019
      preciso que seja assim :
      14/07/2019
      18/07/2019
    • By Igor Gabriel
      Boa Tarde, estou com uma dúvida.
       
      Estou criando um site para uma imobiliárias, fiz um sistema de cadastro todo bonitinho onde se encontra funcionando perfeitamente. Contudo fora do sistema, no site, quando clico para ver os imoveis, tenho a listagem de todos os imoveis já cadastrados. Quando entro na página para ver mais do Imóvel é trazido consigo todas as informações presentes no banco, ao invés de uma só. Como faço para trazer uma única informação específica do banco?
    • By leocouto
      Pegar um dado específico de uma tabela, caso tenha mais de um item cadastrado sempre vai pegar o último.
      <form name="editaFornecedor"<?php +1?> action="edit_forne.php" id="editaFornecedor" method="POST"> <!-- Pegando todos os fornecedores cadastrados... --> <table class="table table-striped"> <thead class="thead-dark"> <tr> <th scope="col">ID</th> <th scope="col">Nome</th> <th scope="col">Fone</th> <th scope="col">CNPJ</th> <th scope="col">Rua</th> <th scope="col">Número</th> <th scope="col">Bairro</th> <th scope="col">Estado</th> <th scope="col">Cidade</th> <th scope="col">CEP</th> <th scope="col">E-mail</th> <th scope="col">Observação</th> <th scope="col">Editar|Deletar</th> </tr> </thead> <?php @session_start(); include('conexao.php'); $fornecedor = mysqli_query($conexao, "SELECT * FROM fornecedor"); $linhas = mysqli_num_rows($fornecedor); while ($linhas = mysqli_fetch_array($fornecedor)) { ?> <tbody> <tr> <td><?php echo $linhas['id_fornecedor']; ?></td> <td><?php echo $linhas['nome']; ?></td> <td><?php echo $linhas['fone']; ?></td> <td><?php echo $linhas['cnpj']; ?></td> <td><?php echo $linhas['rua']; ?></td> <td><?php echo $linhas['numero']; ?></td> <td><?php echo $linhas['bairro']; ?></td> <td><?php echo $linhas['estado']; ?></td> <td><?php echo $linhas['cidade']; ?></td> <td><?php echo $linhas['cep']; ?></td> <td><?php echo $linhas['email']; ?></td> <td><?php echo $linhas['observacao']; ?></td> <td> <button type="submit" class="btn btn-secondary" style="height: 35px; width: 100px"><i class="material-icons">description</i>Editar</button><br> <button type="button" class="btn btn-danger" style="height: 35px; width: 100px"><i class="material-icons">delete</i>Deletar</button> </td> <td><input type="text" name="id_fornecedor" value="<?php echo $linhas['id_fornecedor'];?>"></td> </tr> </tbody> <?php } ?> </table> <!-- Fim da exibição de todos os fornecedores cadastrados.. --> </form>  
       
      ======================================================================================================================================================
      Aqui no MYSQL só pega o último item da tabela.. Não pega o que foi clicado no botão.
      <?php include('conexao.php'); session_start(); //$cnpj=$_POST['cnpj']; $id_fornecedor=$_POST['id_fornecedor']; echo $id_fornecedor; ?> =======================================================================================================================================================
      É desse modelo da imagem, mas na hora que clico em editar no mysql aparece o último id e não na linha que cliquei, se eu clicar no primeiro na outra página aparece o id 4, que é o ultimo, quem pode me dar essa força? Ficarei muito grato.

×

Important Information

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