password_verify verifiziert kein Hash

Ich hashe meine eingegebenen Passwörter über password_hash. Ich überprüfe sie mit password_verify.

Wenn ich jedoch ein Hash-Passwort in meine Datenbank einfüge und versuche, es zu überprüfen, unterscheiden sich beide Ausgaben immer voneinander.

Meine Seiten sind wie folgt:

main_login.php (Formular):

<?php include 'header.php';?>
<body>
<form role="form" method="post" action="login.php">
  <div class="form-group">
    <label for="usrname">Username:</label>
    <input type="text" class="form-control" name="usrname" placeholder="Enter username">
  </div>
  <div class="form-group">
    <label for="passwrd">Password:</label>
  </div>
    <input type="password" class="form-control" name="passwrd" placeholder="Enter password">
    <br>
  <input type="checkbox">Remember Me
  <br>
  <br>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
</body>
</html>

login.php (Handler):

<?php
include 'vars.php';
include 'header.php';
$sql="SELECT * FROM members WHERE usrname='$usrname'";
$result=mysqli_query($con,$sql);
$count=mysqli_num_rows($result);
$row=mysqli_fetch_row($result);
$verify=password_verify($hash,$row[2]);
if($verify){
    $_SESSION["usrname"]=$usrname;
    echo "Correct";
}
else {
    echo "user: " . $usrname. "<br>";
    echo "pass: " . $hash. "<br>";
    echo "db: " . $row[2]."<br>";
    echo "Wrong Username or Password";
}
?>

vars.php:

<?php
$h='localhost';$u='caelin';$p='****';$d='ombouwnh';
$con=mysqli_connect($h,$u,$p,$d);
$usrname=$_POST['usrname'];
$passwrd=$_POST['passwrd'];
$hash=password_hash($passwrd, PASSWORD_DEFAULT);
?>

wenn ich versuche, mich mit dem Benutzernamen 'caca' und dem Passwort 'caca' anzumelden, erhalte ich bei jedem erneuten Versuch eine andere Ausgabe für beide. Ich kann dieses spezielle Problem beim Stackoverflow nicht finden.

TIA

PS. Wenn Sie weitere Informationen benötigen, fragen Sie nach ihnen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage