У меня возникла спонтанная проблема. Внезапно моя функция 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
Ваш код кажется прекрасным - можете ли вы привести примеры входных значений, которые не выполняются? – 1615903
Я пробовал с двумя разными пользователями, поэтому он не отличается от локального пользователя. – Joshua
извините, непонятый. обновили вопрос @ 1615903 – Joshua