Frage zu Loginsystem und Benutzerregistrierung mit PHP und MySQL
bearbeitet von Camping_RIDERAloha ;)
> Wie kommt dieser Fehler zustande? Hat da jemand eine Idee?
> Hängt das eventuell mit der Session zusammen?
Ich habe mal den betreffenden Teil des Quellcodes kopiert, damit man daran weiteranalysieren kann:
~~~php
if (crypt($_POST['f']['password'], $row['password']) == $row['password']) {
session_start();
$_SESSION = array(
'login' => true,
'user' => array(
'username' => $row['username']
)
);
$message['success'] = 'Anmeldung erfolgreich, <a href="index.php">weiter zum Inhalt.';
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/index.php');
} else {
$message['error'] = 'Das Kennwort ist nicht korrekt.';
}
~~~
Meiner Meinung nach bedeutet das, dass Folgendes in deiner Situation eben nicht gilt:
~~~php
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?!?), genauso wie ich den Absatz über die Schlüssel in "Registrieren eines neuen Benutzers" für inhaltlich fragwürdig halte. Es gilt halt eben der disclaimer
> Artikel in Benutzernamensräumen sind möglicherweise nicht mehr aktuell oder gar fehlerhaft.
...und da haben wir auch den Salat, im Skript zur Registrierung steht
~~~php
$_POST['f']['password'] = crypt(
$_POST['f']['password'],
'$2a$10$' . $salt
);
~~~
Der Salt ist also beim Registrieren ein ganz anderer als beim Login. Der beim Login macht, wie gesagt, auch gar keinen Sinn.
Wenn du den Salt im Login-Vorgang durch den korrekten salt ersetzt, sollte alles funktionieren (sofern nicht weitere Fehler im Quellcode sind).
Ich kann dir nur empfehlen, dich stattdessen an den Artikel [Loginsystem](http://wiki.selfhtml.org/wiki/PHP/Anwendung_und_Praxis/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.
Grüße,
RIDER
--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem [eigenen TeamSpeak-Server](http://www.tsviewer.com/index.php?page=ts_viewer&ID=1060332) (fritz.campingrider.de) oder unter:
# [Facebook](http://www.tsviewer.com/index.php?page=ts_viewer&ID=1060332) # [Twitter](https://twitter.com/Camping_RIDER) # [Steam](http://steamcommunity.com/id/Camping_RIDER) # [YouTube](https://www.youtube.com/user/RidersFlame) # [Self-Wiki](http://wiki.selfhtml.org/wiki/Benutzer:Camping_RIDER) #
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[