Ich habe ein Login, bei dem das Passwort bei der Registrierung in einer mysql-DB als CHAR(60) gespeichert wird:
*die Verbindung zur DB wird in einer anderen Funktion hergestellt
Beim Login soll logischerweise das Passwort verifiziert werden:
$pw ist dabei das eingegebene Passwort und $pwd der Hash, der aus der DB ausgelesen wird.
Leider gibt 'password_verify($pw, $pwd)' aber immer 'false' zurück.
Woran kann das liegen?
PHP-Code:
function setPwd($pwd, $username) {
$pwdh = password_hash($pwd, PASSWORD_BCRYPT);
// neues PW in DB speichern
$sql_set_pwd = $this->pdo->prepare("
UPDATE user
SET Pwd = :pwd
WHERE username = :username;
");
$sql_set_pwd->bindParam(':pwd', $pwdh);
$sql_set_pwd->bindParam(':username', $username);
$sql_set_pwd->execute();
}
Beim Login soll logischerweise das Passwort verifiziert werden:
PHP-Code:
if(password_verify($pw, $pwd)) {
session_start();
$_SESSION['username'] = $username;
$verifypwd->endConnection();
header("refresh:0;url=inside.php");
}
Leider gibt 'password_verify($pw, $pwd)' aber immer 'false' zurück.
Woran kann das liegen?
Kommentar