Habe das Problem gefunden. als ich das tat:
echo strlen($hash)
es hat 90 ausgegeben, was seltsam ist, weil am Ende definitiv keine Leerzeichen waren, als ich die Erfolgs-/Fehlermeldung ausgedruckt habe, und das Feld eine Varchar-Länge von 255 hat
Ich habe diese Zeile hinzugefügt:
$hash = substr( $hash, 0, 60 );
Und jetzt funktioniert es einwandfrei.
Es ist seltsam, dass niemand sonst auf dieses Problem gestoßen zu sein scheint. Es gibt ähnliche Posts über password_verify, aber keiner von ihnen erforderte diese Art der Konvertierung oder überhaupt eine Konvertierung:
php password_verify funktioniert nicht
password_verify php stimmt nicht überein
http://forums.phpfreaks.com/topic/ 283407-brauche-Hilfe-bei-der-Passwort-Bestätigung/
Verwenden der Funktionen password_hash und password_verify von PHP 5.5
Eine Sache, die mich stört, ist, dass der Code dadurch nicht aufwärtskompatibel ist. Woher weiß ich, dass der Hash 60 Zeichen lang ist, wenn sich die Standardeinstellung ändert?