In einem Anmeldeskript wird das Passwort normalerweise vom Benutzer eingegeben und in einer Klartextvariablen gespeichert. Um das eingegebene Passwort mit dem in der Datenbank gespeicherten verschlüsselten Passwort zu vergleichen, müssen wir „password_verify()“ verwenden.
if(password_verify($enteredPassword, $hashedPassword)) { // Password verification successful } else { // Password verification failed }
In Ihrem speziellen Fall Sie kann „password_verify()“ in das folgende Codesegment integrieren:
if(($row = $query->fetch()) && (password_verify($ctPassword,$row['password']))){ // Password verification successful $_SESSION['email'] = $row['email']; $_SESSION['first_name'] = $row['first_name'];
Denken Sie daran, das eingegebene Passwort ($ctPassword) an den Parameter im vorbereiteten Code zu binden Anweisung, um eine sichere Ausführung zu gewährleisten.
Um Benutzerdaten effizienter mit PDO::FETCH_ASSOC abzurufen, können Sie Ihren Code wie folgt aktualisieren:
$results = $query->fetch(PDO::FETCH_ASSOC); if($results && password_verify($ctPassword, $results['password'])) { foreach($results as $key => $value) { $_SESSION[$key] = $value; } }
Dadurch werden alle abgerufenen Werte automatisch als Sitzungsvariablen zugewiesen, was den Zugriff auf Benutzerdetails unter „Mein Konto“ erleichtert. Seite.
Das obige ist der detaillierte Inhalt vonWo sollte die Passwortüberprüfung in einem Anmeldeskript platziert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!