Problema com password_verify

Enviada por MAURO RIOS VALENTIM 
MAURO RIOS VALENTIM
Problema com password_verify
03 de June de 2017 às 04:57AM
Olá Pessoal!

Se alguém puder me ajudar, agradeço muito.

Tenho uma senha em banco de dados gerada com password_hash.

Quando vou fazer a verificação no login com o password_verify dá sempre erro de reconhecimento, retornando que a senha não confere.

O código que estou usando é este, aparentemente correto:

<?
//pega o email enviado pelo formulário
$str_user_email = $_POST['str_user_email'];
//pega a senha enviada pelo formulário
$str_user_password = $_POST['str_user_password'];
/consulta o banco de dados para verificar se o o email está correto
$sql0 = $conn->query("SELECT user_id, user_email FROM u_cad WHERE user_email = '".$str_user_email."'");
$rs0 = $sql0->fetch(PDO::FETCH_ASSOC);
if($rs0 == false){
?>
<p>Seu acesso não foi autorizado.</p>
<p>O e-mail <?=$str_user_email?> não está cadastrado em nosso sistema.</p>
<script>setTimeout("window.open('<?=$VarPortalURL?>/admin/login','_top');",10000);</script>
<?
}else{
$str_user_id = $rs0['user_id'];
//verifica se o usuário está ativo
$sql1 = $conn->query("SELECT user_status FROM u_cad WHERE user_id = '".$str_user_id."'");
$rs1 = $sql1->fetch(PDO::FETCH_ASSOC);
if($rs1['user_status'] == 2){
//o usuário não está ativo
?>
<p>Acesso não foi autorizado para <?=$str_user_name?>. Seu cadastro está desativado.</p>
<p>Procure o administrador do sistema.</p>
<script>setTimeout("window.open('<?=$VarPortalURL?>/admin/login','_top');",10000);</script>
<?
}else{
//consulta o banco de dados para pegar a senha cadastrada
$sql2 = $conn->query("SELECT user_password, user_name FROM u_cad WHERE user_id = '".$str_user_id."'");
$rs2 = $sql2->fetch(PDO::FETCH_ASSOC);
//pega o nome do usuário no banco de dados
$str_user_name = $rs2['user_name'];
//pega a senha do usuário no banco de dados
$hash = $rs2['user_password'];
// Verifica se a senha informada coincide com a senha gravada
if (password_verify($str_user_password, $hash)) {
//grava o email do usuário em cookie
setcookie('str_email_login', $str_user_email, (time() + (1 * 24 * 3600)), "/");
//gera um número de acesso
$str_login_acess_number = rand(100000000000000, 999999999999999);
//grava o número de acesso em cookie
setcookie('str_login_acess_number', $str_login_acess_number, (time() + (1 * 24 * 3600)), "/");
//grava o id do usuário em cookie
setcookie('str_login_user_id', $str_user_id, (time() + (1 * 24 * 3600)), "/");
//verifica se o usuário já está cadastro no login register
$sql3 = $conn->query("SELECT login_num_register FROM login_register WHERE login_user_id = '".$str_user_id."'");
$rs3 = $sql3->fetch(PDO::FETCH_ASSOC);
//o usuário não está cadastro, então faz o cadastro
if($rs3 == false){
//insere os dados de login na tabela login_register
$str_data_today_br = date('d/m/Y');
$str_data_today_usa = date('Y-m-d');
$str_hora_login = date('h:i:s');
$str_user_ip = $_SERVER['REMOTE_ADDR'];
$str_login_num_register = 1;
$query = "INSERT INTO login_register(login_date_br,login_date_usa,login_time,login_ip,login_user_id,login_user_name,login_num_register,login_acess_number) VALUES ('".$str_data_today_br."','".$str_data_today_usa."','".$str_hora_login."','".$str_user_ip."','".$str_user_id."','".$str_user_name."','".$str_login_num_register."','".$str_login_acess_number."')";
$conn->exec($query);
//mas se o usuário já está cadastrado...
}else{
//atualiza a tabela login_register apenas com os dados do login
$str_login_num_register = $rs3['login_num_register'];
$str_login_num_register_new = $str_login_num_register + 1;
$query = "UPDATE login_register SET login_date_br ='".$str_data_today_br."', login_date_usa='".$str_data_today_usa."',login_time='".$str_hora_login."',login_ip='".$str_user_ip."',login_num_register='".$str_login_num_register_new."', login_acess_number='".$str_login_acess_number."' WHERE login_user_id = '".$str_user_id."'";
$conn->exec($query);
}
// Redireciona para a página do Painel de Administração
?>
<div style="margin-top:200px; text-align:center;">
<script>setTimeout("window.open('<?=$VarPortalURL?>/admin/painel','_top');",5000);</script>
<p>Login realizado com sucesso!</p>
<p><span class="h4"><i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i></span><span class="h5"> acessando o sistema...</span></p>
</div>
<?
//o usuário não é cadastrado
}else{
?>
<p>Acesso não foi autorizado para <?=$str_user_name?>. Sua senha está incorreta.</p>
<script>setTimeout("window.open('<?=$VarPortalURL?>/admin/login','_top');",10000);</script>
<? }}}
?>

Obrigado.

Mauro Rios
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.