
Ich bastele gerade an den Modulen Selfregistration und FrontendUsers.
Ziel ist es, die Registrierung in vier Schritten ablaufen zu lassen.
Im ersten Schritt werden nur die Eigenschaften abgefragt, die zwingend notwendig sind, um überhaupt irgendeinen User anlegen zu können.
Das wären Benutzername, Passwort und, wenn der User die Registrierung per Email bestätigen soll, die Email-Adresse.
Im zweiten Schritt kommen zusätzliche Angaben zur Person (oder welche Eigenschaften sonst noch so festgelegt wurden).
Der dritte Schritt ist nur nochmal eine Übersicht aller Angaben. Damit kann der User nochmal auf einem Blick überprüfen, ob alles richtig ist. Und eine kleine Checkbox, dass man den AGBs zustimmt.
Der vierte Schritt ist die Bestätigung durch den User über den Link per Email zum endgültigen Freischalten des Accounts.
Fragt nicht warum ich das alles mache.
Der Kunde will es einfach so

Vorteil ist, dass bereits im ersten Schritt geprüft wird, ob der Username bzw. die Email bereits vergeben ist.
Mein Problem ist die Funktion zum Freischalten des Accounts durch den User.
Bei mir werden im Link lediglich die UserID des Temporären Users und der Freischaltcode übergeben.
Mehr braucht man da meiner Meinung nach nicht.
Der Rest wird serverseitig aus der Tabelle des SelfReg-Moduls ausgelesen.
Der Link funktioniert.
Der User wird auch angelegt.
Das Passwort wird sowohl bei SelfReg als auch bei FeUsers md5 kodiert in der DB gespeichert.
Da das Password (weil es bei mir ja nicht mehr im Link des SelfReg-Moduls als Klartext (!) übergeben wird) bereits md5 kodiert an das FeUsersModule übergeben und dort ein zweites Mal md5 kodiert wird, musste ich auch ein wenig am FrontendUsers Module rumspielen.
Also ich habe lediglich in die Funktion zum Erstellen eines Users noch einen Parameter hinzugefügt, mit dem das Passwort entweder md5 kodiert oder einfach so wie es übergeben wurde in der DB gespeichert wird.
Und jetzt kommen wir zum Problem:
Wenn ich im SelfReg-Module den temporären User auslese, um die Daten an das FeUsers-Module zum Erstellen des Users zu übergeben, bleibt das Passwort leer.
Der User wird also angelegt, aber ohne Passwort.
Der Grund dafür ist, dass nachdem ich die Daten aus der DB auslese, aus der Spalte "password" in der DB plötzlich der Arrayindex "passsword" im Script wird.
Mein Problem ist leicht zu lösen: einfach anstelle von $tmpuser['password'] die variable $tmpuser['passsword'] übergeben.
Ich frage mich nur wo und warum der Index mit einem zusätzlichen "s" versehen wird?