Archiv verlassen und diese Seite im Standarddesign anzeigen : Reguläre Ausdrücke für Useranmeldung case-insensitiv?
Ich stehe gerade vor dem Problem, daß wir 1337-Namen verhindern wollen, also z.B. den ersten Buchstaben als großgeschrieben vorschreiben, sowie einige Sonderzeichen unterbinden. Unsere beiden Versuche also (der zweite abgespeckert, falls es sich um einen Fehler im Ausdruck handeln sollte):
^[A-Z]{1}[^!\.#\$§%\&\(\)\*\+\/:;<=>\?@\[\\\]\^_`´\{\|\}~]{2,}$
^[A-Z] Tja, beide Ausdrücke ließen leider Usernamen wie rEG eXP oder dUMMER Username zu, obwohl der erste Buchstaben ja eigentlich schon den Match unterbinden sollte.
Also hab ich wie hier in einem anderen Beitrag zu reg. Ausdrücken vorgeschlagen das Plugin-System deaktiviert. Keine Änderung, auch der User dUMMBatz hätte sich immer noch registrieren dürfen.
Gehe ich nun richtig in der Annahme, daß includes\class_dm_user.php daran schuld ist, genauer gesagt das '#siU' dort in Zeile 406 (i wie ignore case)? Von Haus aus also erstmal gar nicht vorgesehen ist, zwischen groß und klein zu unterscheiden (womit der Nutzen der regulären Ausdrücke gleich irgendwie für uns deutlich sinkt)? Dann sollte das aber zumindest auf der Admin-Seite auch erwähnt werden, damit nicht noch mehr "ordentliche" Admins wie ich erstmal ne Stunde lang vergebens ausprobieren ;)
(und bei Änderungen am Code würden wir das Anrecht auf Support verlieren, oder wie war das? ;) )
StGaensler
17.08.2007, 22:03
Hallo,
genau, das i steht für caseinsensitive - somit ist das, was du vorhast, leider ohne Code-Änderung nicht umsetzbar.
Außerdem, das ist ne kleine Code-Änderung, und wenn du mal wirklich nen Support-Ticket aufmachst, dann machst du das i halt wieder rein ;)
Nee, so streng sind wir da nicht. Das ist ne klitzekleine Änderung deren Auswirkung selbst du überblicken kannst :) Im Zweifelsfall heißt es hier im Forum dann eh mal: Hast du es schon mal mit den Standard vBulletin-Dateien probiert?
Viele Grüße,
Stefan
PS: Ich würde dir raten, nicht Sonderzeichen zu verbieten, sondern nur die Zeichen zu erlauben, die du erlaubt haben willst. Sonst bietet der Unicode-Zeichensatz auch jede Menge "schöne" Zeichen, mit denen man seinen Benutzernamen verzieren kann. Benutzernamen dürfen nämlich (per default) auch solche Zeichen enthalten.
Da es sich um ein Forum mit Fantasy-Wurzeln handelt, sind diverse Sonderzeichen schon teilweise erwünscht, mit französischen Akzenten etc. haben wir keine Probleme ;) Ob nun aber Ausschluß- oder Einschlußliste müssen wir nochmal genauer überlegen, stimmt!
Vielen Dank für die Ermunterung, die Änderung wirklich zu machen :)
Hab das gerade mal getestet, klappt schon fast perfekt, bis auf:
http://img153.imageshack.us/img153/4672/bgforumregexpmeldungwx9.png
Komische Meldung für einen Namen, der nicht dem Muster entspricht... kurzer Blick an die Stelle, an der ich sowieso schon geändert hatte zeigt, daß dort $this->error('usernametaken', ...) aufgerufen wird.
Ich hab mir dann also noch die Freiheit genommen, eine Phrase 'usernameregexp' zu erstellen, und da diese nicht gefunden werden konnte, in der Datenbank noch fieldname von global auf error umzustellen.
Funktioniert jetzt also ordentlich, war nur nochmal als Anregung erwähnt, daß die Standardmeldung in diesem Fall für den Neuanmelder evtl. etwas verwirrend sein könnte ;)
Funktioniert jetzt also ordentlich, war nur nochmal als Anregung erwähnt, daß die Standardmeldung in diesem Fall für den Neuanmelder evtl. etwas verwirrend sein könnte
Die Phrase wurde extra so gewählt um dem User nicht zu offenbaren dass sein Benutzername gegen die Regeln verstößt.
Siehe Kommentar zur Fehlermeldung bei gesperrten Benutzernamen.
Tut mir leid, wie ich jetzt einen "Kommentar zur Fehlermeldung bei gesperrten Benutzernamen" finden soll, weiß ich gerade nicht, zumindest zur "Verbotene Usernamen"-Einstellungen direkt über der RegExp-Einstellung meinst Du wahrscheinlich nicht.
Egal, mit Verlaub gesagt halte ich das für ziemlichen Blödsinn :)
Klar, das ist ne gute Methode, um neue Benutzer gleich abzuschrecken, weil sie dann halt zehn 1337-Namen durchprobieren und irgendwann verschwinden. Andererseits gibt es auch unter diesen welche, die trotzdem in die Community passen würden, wenn sie einfach wüssten, daß solche Namen halt nicht erwünscht sind.
Aber falsche Fehlermeldungen sind eigentlich fast IMMER etwas, wo es mich als Softwareentwickler schüttelt. Ok, um bösartige Angreifer abzuwehren mag das angehen, aber jemand der als frischer Besucher einmal einen Namen eingibt, der vielleicht wegen eines dummen Sonderzeichens nicht den Ansprüchen genügt, derart vorab abzustempeln fällt für mich nur noch unter ziemlich intolerantes Vorurteil ;)
vBulletin® v3.7.4, Copyright ©2000-2008, Jelsoft Enterprises Ltd.