2016-01-21 4 views
0

У меня возникла спонтанная проблема. Внезапно моя функция password_verify() возвращает false.password_verify() return false

<?php 
$email = $_POST['email']; 
$password = $_POST['password']; 
$sql1 = 
    "SELECT `merchants_id`, `password`, `name` FROM table_name WHERE `email` = :email;"; 
$binds = array(
    'email' => $email 
); 

$findvalue = Mage::getSingleton('core/resource')->getConnection('core_read')->fetchAll($sql1, $binds); 
$findvalue = $findvalue[0]; 

$verified = password_verify($password, $findvalue['password']); 
?> 

Как вы можете видеть, я использую Magento (полностью исправленную 1.7) и методы их выполнения запроса.

Если я разобрать его через password_get_info($findvalue['password']) он улавливает, что пароль является действительным, и выводит ожидаемые данные (тип шифрования и т.д.), однако $verified возвращает FALSE

Поле базы данных является набор и всегда был установлен, чтобы varchar(255) ,

EDIT ---

Это код, который был использован для создания паролей:

$hash = password_hash($value['password'], PASSWORD_BCRYPT); 
    $updateSql = 'UPDATE table_name SET `password` = :password WHERE `merchants_id` = :merchant_id;'; 
    $updateBinds = array(
     'password' => $hash, 
     'merchant_id' => $value['merchants_id'] 
    ); 
    $cxn->query($updateSql, $updateBinds); 

Кроме того, в соответствии с просьбой здесь пароль строка: $2y$10$TfTULzD9eVUEdjaquhcUmOhGD07X5VV3MloCpjaOmpt3GqOBpEhmm

+0

Ваш код кажется прекрасным - можете ли вы привести примеры входных значений, которые не выполняются? – 1615903

+0

Я пробовал с двумя разными пользователями, поэтому он не отличается от локального пользователя. – Joshua

+0

извините, непонятый. обновили вопрос @ 1615903 – Joshua

ответ

0

сбросить мой пароль, и все это сработало.

У меня есть подозрение, что это может быть потому, что я обновил мою версию PHP до 5.6, что означает, что алгоритм может быть изменен.