Mysql
 sql >> Baza danych >  >> RDS >> Mysql

php password_verify() hash i pass nie będą pasować

$2y$10$zzZCN7UlukvY2skb3ELVp.4y3Oc7NJTEsFyqdstqYxT hash ma tylko 50 długości i jest nieprawidłowy/za krótki i jak powiedziałem, MySQL po cichu zawiedzie; raportowanie/sprawdzanie błędów nie pomogłoby tutaj.

Długość kolumny hasła powinna wynosić 60 (sugerowane jest 255), więc nie było ono pierwotnie przechowywane poprawnie.

Będziesz musiał wyczyścić kolumnę/lub tabelę hasła, zwiększyć długość kolumny i zacząć od nowa.

Odniesienie:

Możesz również zmodyfikować swoje zapytanie, aby wyglądało na:

$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!";
}

Edycja:

Dodawanie z komentarza pozostawionego przeze mnie do OP:

Twoja funkcja weryfikacji musi mieć połączenie z twoją bazą danych, co moim zdaniem dzieje się tutaj (zakres zmienny). Więc musisz albo użyć global $con; lub przekaż połączenie (zmienną) do swojej funkcji (co jest lepsze w większości przypadków).

Nie wiem, czy robisz „include” dla funkcji, a jeśli tak, to na tym polega drugi problem.

Np.:function VUP($con, $check, $valid){ lub function VUP($check, $valid){ global $con; - Spróbuj obu. Użyj $result = mysqli_query($con, $query) or die(mysqli_error($con)); zamiast tego, który masz teraz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić wartości z tablicy PHP do tabeli MySQL?

  2. Wady przechowywania obrazów w bazie danych?

  3. Jak przekonwertować html na pdf za pomocą php?

  4. Jak skonfigurować zdalne połączenie MySQL

  5. Jak skopiować tabelę w MySQL