Chave de recuperação

Boa tarde, estou fazendo uma aplicação que gera uma chave de acesso para uma nova senha, porém eu não consigo fazer com que a chave apareça

A classe com a função

class RecuperarSenha
{
    function GerarChave($conexao, $email)
    {
        $query = mysqli_query($conexao, "SELECT * FROM usuarios WHERE email = '$email'") or die(mysqli_error());

        $contagem = mysqli_num_rows($query);

        if($contagem > 0)
        {
            $chave = password_hash($query["id"]. $email, PASSWORD_BCRYPT, array('cost'=>20));
            return $chave;
        }
    }
}

O arquivo que recebe a função

// Incluindo arquivos
include_once '../database/conectar.php';
include_once '../controller/RecuperarSenha.php';

// Instanciando objetos
$conecta = new conectar();
$recuperaSenha = new RecuperarSenha();

$conexao = $conecta->abrirConexao();
$email = $_POST['txtEmail'];

$chave = $recuperaSenha->GerarChave($conexao, $email);

echo $chave;

Você precisa fazer um fetch (forçar o cursor) na sua query…

if($contagem > 0)
{
    $array = mysqli_fetch_assoc($query);
    $chave = password_hash($array["id"]) ...
    ...
}

Outra coisa, se trata daquele sisteminha que você ta fazendo? Se bem me lembro você estava usando ‘cost’ => 25, tome cuidado com isso também!

Outra dica, evite ao máximo concatenar variáveis do php com seu sql, cuidado com sql injection

Esse post tem um macete legal de implementar sem por a segurança do banco em risco…

e ai, você ta salvando minha vida kkkkkkk

certo, acho que entendi, vou tentar
Porque toma cuidado com o ‘cost’=>12?

Não disse pra tomar cuidado com cost => 12, mas quis dizer para usar um número fixo, se é 25 lá, tem que ser aqui também, pegou?

Por que isso influencia na geração do hash, você usando 25 no login e 20 aqui pode dar conflito…

a sim, mas os dois estão com 20 agora, estava fazendo uns testes pra ver qual fica melhor

1 curtida

Maravilha LostSoldier, funcionou perfeitamente

salvou minha vida mais uma vez, valeu

1 curtida

Estuda o PDO cara, ele tem muita coisa legal e é independente de base, porém é 100% oo, bons estudos!

Seria bom também você editar o assunto do seu tópico, coloque apenas programação -> php sem a versão, assim ele aparece na lista e na sala correta…

Entendi, fmz
assim que eu chegar em casa eu dou uma procurada por pdo