Ich habe für etwa 50 Beiträge über mein Problem gesucht und gelesen, aber immer noch nicht mein Problem herausfinden, also bin ich hier.password_verify funktioniert nicht nach dem Speichern in der Datenbank
Problem: password_verify()
gibt false zurück, auch wenn das Passwort korrekt ist. Diese
ist, wie ich speichern Passwort in db (Wenn das Register und Profil bearbeiten)
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
Und meine letzte password_verify()
(Ich habe viele Beispiele versucht, arbeitet niemand und jetzt hier mit sitze ich immer noch nicht Arbeitscode)
public function doLogin($username,$password){
try{
$stmt = $this->conn->prepare("SELECT id, username, password FROM users WHERE username=:username");
$stmt->execute(array(':username'=>$username));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if (password_verify($password, $userRow['password'])) {
$_SESSION['user_session'] = $userRow['id'];
$_SESSION["result"]='You have succesfully logged in your profile!';
return true;
}else{
return false;
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
Mein Datenbankfeld ist 25 Zeichen lang. Was ist hier falsch?
Ist die Datenbankabfrage der Benutzerdatensatz abzurufen? Was sollte Ihr Code tun, wenn kein passender Benutzerdatensatz vorhanden ist? Ist der Kennwort-Hash, der von der Datenbankabfrage zurückgegeben wird, korrekt? Hat das Passwort die richtige Länge? Hast du nichts mit $ password vor dem Aufruf dieser Funktion (wie dem Escapen) oder hast du etwas mit dem eingegebenen Passwort bei der Registrierung oder Bearbeitung gemacht? –
Wie lang ist die 'Passwort' Spalte? Wie fügst du das Passwort ein? – Qirel
Scheint so, als ob Sie das Passwort streichen und somit seinen Wert ändern. Und die Länge der Passwort-Spalte sollte mindestens 60 sein – Akintunde007