$2y$10$zzZCN7UlukvY2skb3ELVp.4y3Oc7NJTEsFyqdstqYxT
de hash is slechts 50 lang en is ongeldig/te kort en zoals ik al zei, MySQL zal stilletjes mislukken; foutrapportage/controle zou hier niet hebben geholpen.
De kolomlengte van het wachtwoord moet 60 zijn (255 wordt aanbevolen), dus het was oorspronkelijk niet correct opgeslagen.
U moet de kolom/of tabel met uw wachtwoord wissen, de kolom langer maken en opnieuw beginnen.
Referentie:
U kunt uw zoekopdracht ook wijzigen om te lezen als:
$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!";
}
Bewerken:
Toevoegen vanuit een opmerking die ik aan de OP heb achtergelaten:
Uw verificatiefunctie moet een verbinding hebben met uw database, dat is wat ik voel dat hier gebeurt (variabele omvang). U moet dus ofwel global $con;
. gebruiken of geef de verbinding (variabele) door aan uw functie (wat in de meeste gevallen beter is).
Ik weet niet of je een "include" voor de functie doet, en zo ja, dan is dat het andere probleem.
D.w.z.:function VUP($con, $check, $valid){
of function VUP($check, $valid){ global $con;
- Probeer beide. Gebruik $result = mysqli_query($con, $query) or die(mysqli_error($con));
in plaats van degene die je nu hebt.