Mysql
 sql >> база данни >  >> RDS >> Mysql

php password_verify() хешът и пасът няма да съвпадат

$2y$10$zzZCN7UlukvY2skb3ELVp.4y3Oc7NJTEsFyqdstqYxT хешът е с дължина само 50 и е невалиден/твърде кратък и както казах, MySQL ще се провали безшумно; докладването за грешки/проверката не би помогнало тук.

Дължината на колоната на паролата трябва да бъде 60 (предполага се 255), така че първоначално не е била съхранена правилно.

Ще трябва да изчистите колоната/или таблицата си с парола, да увеличите дължината на колоната и да започнете отначало.

Справка:

Можете също да промените заявката си, за да се чете като:

$con = new mysqli("xxx", "xxx", "xxx", "xxx");
if ($con->connect_error) {
    die('Connect Error (' . $con->connect_errno . ') '
            . $con->connect_error);
}

$query = "SELECT `pass` FROM `user` WHERE `email`='$emailLogin'";
$result = $con->query($query);

// error checking on the query
if (!$result) {
    echo "<p>There was an error in query: $query</p>";
    echo $con->error;
}

$row_hash = $result->fetch_array();
if (password_verify($passLogin, $row_hash['pass'])) {
    echo "Success!";
}

Редактиране:

Добавяне от коментар, който оставих към ОП:

Вашата функция за проверка трябва да има връзка с вашата база данни, това според мен се случва тук (променлив обхват). Така че ще трябва да използвате или global $con; или предайте връзката (променлива) към вашата функция (което е по-добре в повечето случаи).

Не знам дали правиш "включване" за функцията и ако е така, значи това е другият проблем.

Т.е.:function VUP($con, $check, $valid){ или function VUP($check, $valid){ global $con; - Опитайте и двете. Използвайте $result = mysqli_query($con, $query) or die(mysqli_error($con)); вместо този, който имате сега.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите размера на mysql базата данни?

  2. Docker (Apple Silicon/M1 Preview) MySQL няма съответстващ манифест за linux/arm64/v8 в записите в списъка на манифеста

  3. Стъпки за инсталиране на Mysql56 на linux

  4. Търсене на пълно име или име или фамилия в MySQL база данни с име и фамилия в отделни колони

  5. Показване на данни от MYSQL; Грешка в SQL израза