Seite 1 von 1

username_clean Änderung der Usernamen

Verfasst: 18.01.2008 16:11
von Th.S
Hallo,

ich habe ein phpBB 2 konvertiert zum Testen, dabei wurden Benutzernamen geändert.
Alle Benutzer die ein Leerzeichen im Namen hatten müssen sich nun mit Unterstrich anmelden. Da ich aber möchte, dass sich jeder wie bisher anmelden kann, müsste der eingegebene Username vor dem Abgleich mit der Datenbank auch umgewandelt werden.

Der Unterstrich alleine wäre ja nicht das Problem, jedoch gibt es noch einige (viele) User mit Umlauten, die auch Probleme bekommen könnten, daher müsste die Umsetzung ja wie im Konverter funktionieren. Leider bekomme ich das nicht hin.
Versucht habe ich schon diverse der im Konverter auftauchenden UTF-Funktionen, ohne Erfolg. Eingesetzt habe ich die Funktionen in der includes/auth/auth_db.php in der Funktion login_db direkt unterhalb der Globalisierung von $db und $config.

Hat jemand eine Idee warum das nicht geht?
Welche Stelle wäre sinnvoller dafür?
Wie werden die Usernamen geändert beim Konvertieren?

Dank im Vorraus

Thomas

Verfasst: 18.01.2008 18:12
von PhilippK
Die Konvertierung erstellt ein neues Feld username_clean - das alte Benutzernamen ist aber weiterhin vorhanden und wird auch für die Anmeldung verwendet.

Gruß, Philipp

Verfasst: 18.01.2008 18:22
von Th.S
Komischerweise eben genau das nicht, auch das alte Feld des Usernamen wurde konvertiert in die neue Form, so dass eben ein Login mit dem alten Usernamen nicht mehr geht.

Heisst das der Konverter hat da mist gemacht, indem er beide Felder geändert hat?

Verfasst: 18.01.2008 19:29
von PhilippK
Was kommt den für eine Fehlermeldung? Vermutlich konnte nur das Passwort nicht konvertiert werden und muss neu angefordert werden.

Gruß, Philipp

Verfasst: 18.01.2008 20:02
von Th.S
Hmmmm,

Eben keine Fehlermeldung.

Stelle grade fest, das ich die Fehlerquelle bin, könnte aber dennoch einen Tip gebrauchen.

Dadurch, dass vor dem PHPBB das Forum auf YaBB SE lief, habe ich in dem Sourceforum ein zusätzliches Feld "loginname". Dies hatten wir beibehalten, da eben das Login nicht mit dem angezeigten Usernamen übereinstimmen muss. Wenn die beiden sich unterscheiden, kann man nicht versuchen mit dem Usernamen und einem erratenem Passwort einen Account zu missbrauchen.

Ist folgende Änderung richtig ?
In der Userstabelle das Feld loginname hinzufügen

convert_phpbb20.php öffnen

suche folgende Zeile:
array('username', 'users.username', 'phpbb_set_default_encoding'), // recode to utf8 with default lang

davor füge ein:

array('loginname', 'users.loginname', 'phpbb_set_default_encoding'), // recode to utf8 with default lang


Wenn das soweit richtig ist, dann ist noch die Frage an welcher Stelle ich das Loginscript ändern sollte.
In der auth_db.php geht denke ich, aber das sollte man eigentlich schon ändern bevor die Authmethode differenziert wird.
Hast du da noch einen Tip für mich?