Hallo
Meiner Meinung nach bedeutet das, dass Folgendes in deiner Situation eben nicht gilt:
crypt($_POST['f']['password'], $row['password']) == $row['password']
Lass dir doch mal die betreffenden Variableninhalte ausgeben. Mir kommt die crypt-Funktion hier auch irgendwie spanisch vor (warum sollte
$row['password']
als salt verwendet werden?!?),
Der ist mir auch aufgefallen und der wird's mit an Sicherheit grenzender Wahrscheinlichkeit auch sein. Der Salt wird, soweit ich weiß, zuzüglich weiterer Infos z.B. über seine Länge, dem gehashten Passwort beim speichern vorangestellt. Beim Login muss dieser Abschnitt aus dem Passwort gepopelt und statt dessen an die Funktion crypt
übergeben werden.
Ich kann dir nur empfehlen, dich stattdessen an den Artikel Loginsystem von @Jörg Reinholz zu halten; der ist deutlich aktueller und im Hauptnamensraum, d.h. er unterliegt (im Gegensatz zu Artikel-Skizzen im Benutzernamensraum) auch der Wartung durch die Community.
Schon alleine dieser Umstand reicht. :-)
Tschö, Auge
Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
Terry Pratchett, „Gevatter Tod“