2015-06-02 2 views
0

Спасибо, что помогли мне в этом вопросе. Я пытаюсь сравнить пароли с php password_verify, но он не работает. Что-то не так с моим кодом? (я получаю второе сообщение «НЕВЕРНЫЙ ПОЛЬЗОВАТЕЛЬ ИЛИ ПАРОЛЬ») Приветствия!Password_verify bcrypt не работает

function login_aut($uname, $pass){ 

    include('_con.php'); 
    include('password.php'); 

    $stmt = $conex->prepare("SELECT id, pass FROM tb_users WHERE uname =?"); 

    /* bind parameters for markers */ 
    $stmt->bind_param("s", $uname); 

    /* execute query */ 
    $stmt->execute(); 

    /* get num of rows */ 
    $stmt->store_result(); 
    $numrows = $stmt->num_rows; 

    if(($numrows) == ""){echo 'INVALID USER ';die();} 

    $stmt->bind_result($u_id,$upass); 

    $stmt->fetch(); 
    /* close statement */ 
    $stmt->close(); 



if (!password_verify($pass,$upass)) { echo 'INVALID USER OR PASSWORD'; die(); } 
+0

Проделать любую отладку, например 'var_dump ($ pass, $ upass)'? и '$ numrows ==" "' неверно. num_rows возвращает целое число, вы не должны сравниваться со строкой, даже если '0 ==" "' будет 'true'. –

+0

также пахнет как переменная scope –

+0

Спасибо @MarcB var_dump в порядке. =/ – Thecoder

ответ

2

Спасибо, что помогли ребятам! Проблема была в длине столбца DB, это было недостаточно для хэша. Спасибо!

+0

Добро пожаловать. –

Смежные вопросы