How to change encrypted password and encrypt it

Asked

Viewed 50 times

0

Guys, here’s the thing, I got a problem with my system. I have an e-commerce and this electronic store has the part for users to register and even after registration, change the password of the same, anyway. In the registration part of the users the password will be encrypted in BD MYSQL, until then all right, only when the user wants to change the password he can and the password will be changed to BD, only when he will try to enter the system with the password changed it does not enter. I’ll show you the codes I used:

Register.php

<?php
session_start();
ob_start();
$btnCadUsuario = filter_input(INPUT_POST, 'btnCadUsuario', FILTER_SANITIZE_STRING);
if($btnCadUsuario){
    include_once '../Conexao/conexao.php';
    $dados_rc = filter_input_array(INPUT_POST, FILTER_DEFAULT);

    $erro = false;

    $dados_st = array_map('strip_tags', $dados_rc);
    $dados = array_map('trim', $dados_st);

    if(in_array('',$dados)){
        $erro = true;
        $_SESSION['msg'] = "<div class='alert alert-danger'>Necessário preencher todos os campos</div>";
    }elseif((strlen($dados['senha'])) < 6){
        $erro = true;
        $_SESSION['msg'] = "<div class='alert alert-danger'>A senha deve ter no mínimo 6 caracteres</div>";
    }elseif(stristr($dados['senha'], "'")) {
        $erro = true;
        $_SESSION['msg'] = "<div class='alert alert-danger'>Caracter ( ' ) utilizado na senha é inválido</div>";
    }else{ 
        $result_usuario = "SELECT idusuario FROM usuarios WHERE usuario='". $dados['usuario'] ."'";
        $resultado_usuario = mysqli_query($conn, $result_usuario);
        if(($resultado_usuario) AND ($resultado_usuario->num_rows != 0)){
            $erro = true;
            $_SESSION['msg'] = "<div class='alert alert-danger'>Este usuário já está sendo utilizado</div>";
        }

        $result_usuario = "SELECT idusuario FROM usuarios WHERE email='". $dados['email'] ."'";
        $resultado_usuario = mysqli_query($conn, $result_usuario);
        if(($resultado_usuario) AND ($resultado_usuario->num_rows != 0)){
            $erro = true;
            $_SESSION['msg'] = "<div class='alert alert-danger'>Este e-mail já está sendo utilizado</div>";
        }
    }


    //var_dump($dados);
    if(!$erro){
        //var_dump($dados);
        $dados['senha'] = password_hash($dados['senha'], PASSWORD_DEFAULT);

        $result_usuario = "INSERT INTO usuarios (nome, email, usuario, senha) VALUES (
                        '" .$dados['nome']. "',
                        '" .$dados['email']. "',
                        '" .$dados['usuario']. "',
                        '" .$dados['senha']. "'
                        )";
        $resultado_usario = mysqli_query($conn, $result_usuario);
        if(mysqli_insert_id($conn)){
            $_SESSION['msgcad'] = "<div class='alert alert-success'>Usuário cadastrado com sucesso!!</div>";
            header("Location: LoginPT-BR.php");
        }else{
            $_SESSION['msg'] = "<div class='alert alert-danger'>Error ao cadastrar usuário!!</div>";
        }
    }
}
?>

Validate.php

<?php
session_start();
include_once("conexao.php");
$btnLogin = filter_input(INPUT_POST, 'btnLogin', FILTER_SANITIZE_STRING);
if($btnLogin){
    $usuario = filter_input(INPUT_POST, 'usuario', FILTER_SANITIZE_STRING);
    $senha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING);
    //echo "$usuario - $senha";
    if((!empty($usuario)) AND (!empty($senha))){
        //Gerar a senha criptografa
        //echo password_hash($senha, PASSWORD_DEFAULT);
        //Pesquisar o usuário no BD
        $result_usuario = "SELECT idusuario, nome, email, senha FROM usuarios WHERE usuario='$usuario' LIMIT 1";
        $resultado_usuario = mysqli_query($conn, $result_usuario);
        if($resultado_usuario){
            $row_usuario = mysqli_fetch_assoc($resultado_usuario);
            if(password_verify($senha, $row_usuario['senha'])){
                $_SESSION['idusuario'] = $row_usuario['idusuario'];
                $_SESSION['nome'] = $row_usuario['nome'];
                $_SESSION['email'] = $row_usuario['email'];
                header("Location: ../PT-BR/PT-BR.php");
            }else{
                $_SESSION['msg'] = "<div class='alert alert-danger'>Login ou senha incorretos!</div>";
                header("Location: ../PT-BR/LoginPT-BR.php");
            }
        }
    }else{
        $_SESSION['msg'] = "<div class='alert alert-danger'>Preencha os dois campos abaixo!</div>";
        header("Location: ../PT-BR/LoginPT-BR.php");
    }
}else{
    $_SESSION['msg'] = "<div class='alert alert-danger'>Página não encontrada</div>";
    header("Location: ../PT-BR/LoginPT-BR.php");
}

?>

Change your password.php

<?php
    include_once("conexao.php");
    $id = mysqli_real_escape_string($conn, $_POST['idusuario']);
    $senha = mysqli_real_escape_string($conn, $_POST['senha']);

    $result_produtos =  "UPDATE usuarios SET senha = '" .password_hash('senha', PASSWORD_DEFAULT). " 'where idusuario = '$id'";
    $resultado_produtos = mysqli_query($conn, $result_produtos);

    $result = mysqli_query($conn, $result_produtos);

 // Verifica se o comando foi executado com sucesso
if (!$result)
{
    echo "Error na inserção." .mysqli_error();
    exit();
}
else
{
    $ultid =  mysqli_insert_id($conn);
    //echo $ultid;
    echo "<script>alert('Sua senha foi alterada com sucesso!!');</script>";
    //echo "<script>javascript:history.back(-4);</script>";
    echo "<script>window.location.href='../PT-BR/MinhacontaPT-BR.php?id=$id';</script>";
    //echo "header('Location: fichaanamnese.php?id=$ultid')";
}

?> 

The problem is that when the user will try to enter the system with the changed password he cannot. Note: when it changes the password it will encrypted to the right comic.

  • Your question is duplicated here: https://answall.com/questions/363396/como-dar-update-em-uma-senha-no-mysql-e-criptografar-a-mesma remember that I entered a last record there using md5.

  • 1

    Shouldn’t be password_hash($senha, PASSWORD_DEFAULT); instead of password_hash('senha', PASSWORD_DEFAULT);?

  • I’m gonna test Puss.

  • I doubled the question because I couldn’t get it together bro I tried everything and ngm said nothing else

  • @cat I tested this way you told me, but even so he records the password in ENCRYPTED BD and when logging in he does not enter bro ;\

  • @Pedrolukas put it on, man. There when using md5 to encrypt when you will validate with the password sent by the user you pass it to md5 to compare. I edited the answer by putting complete example with use of md5, see there.

Show 1 more comment
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.