Nur alphanumerische Usernamen zulassen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hier die Datei zurück.
Ich habe mal ein klein wenig angepasst, so daß es funktionieren sollte.
Und im Falle eines "Fehlers" sollten auch die fehlerhaften Zeichen mit angezeigt werden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
LotteB
Beiträge: 36
Registriert: Di 11.Okt, 2005 17:24
Kontaktdaten:

Beitrag von LotteB »

Danke für die Anpassung oxpus!
Leider klappts noch immer nicht. Wen ich mich mit dem Benutzernamen "Sauerkraut" anmelde, kommt nach wie vor die Meldung: "Der eingegebene Name beinhaltet 2 ungültige Zeichen!"

Und angezeigt werden die beiden aa.´s...

Auch andere Benutzernamen die ein "a" enthalten werden nicht akzeptiert....

Nur, warum ist das so?
¦8
Das wahre UnrealEd Support-Forum. Von Mappern f?r Mapper.
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ach ja, weil...

Also ändere mal

Code: Alles auswählen

if (!strpos($check_string, $check_char))
in dieses hier ab:

Code: Alles auswählen

if (strpos($check_string, $check_char) !== false)
Wenn das so klappt, habe ich einen typischen Anfängerfehler mit dieser Funktion begangen: Das "a" steht ja an der ersten Position im Vergleichsstring. Die erste Position ist aber "0" und nicht "1"!
Die Bedingung liefert aber auch bei "0", was ja beim "a" zurückkommt eine Unwahrheit, es wird also "scheinbar" ein Fehler festgestellt.
Daher ist hier mit "!== false" genauer geprüft werden, ob dieses nicht zutrifft, also ob "false" exakt dem Ergebnis entspricht. "0" wäre dann eben nicht "false" ;)

Soviel zur Theorie.
Wenn das damit klappt, ändere ich auch sofort mein Snippet ab.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
LotteB
Beiträge: 36
Registriert: Di 11.Okt, 2005 17:24
Kontaktdaten:

Beitrag von LotteB »

^^ Jetzt wird der komplette Name, egal was man eingibt, als ungültig ausgegeben...
Das wahre UnrealEd Support-Forum. Von Mappern f?r Mapper.
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ach Mist, klar muss umgekehrt lauten:
Nicht !== sondern === . Sorry :!:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
LotteB
Beiträge: 36
Registriert: Di 11.Okt, 2005 17:24
Kontaktdaten:

Beitrag von LotteB »

Stimmt, lag am Vergleichsoperator. Jetzt klappts. Nochmals vielen Dank!
*freu*
Das wahre UnrealEd Support-Forum. Von Mappern f?r Mapper.
Bild
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

Habs auch mal eingebaut, mit allen Änderungen!
Bekomme bei der Eingabe von Almöhi folgende Meldungen;

Code: Alles auswählen

Der Benutzername muss alphanumerisch sein. Der eingegebene Name beinhaltet 2 ungültige Zeichen!
und

Code: Alles auswählen

Warning: strpos(): Empty delimiter. in D:\xampp\xampp\xampp\htdocs\xxx\includes\usercp_register.php on line 456
Ein falsches Zeichen ok, aber 2? Ein Änderung des Namens auf almoehi oder Almoehi liefert immer noch ein falsches Zeichen!
modbo
Beiträge: 1344
Registriert: Mo 13.Dez, 2004 11:18
Kontaktdaten:

Beitrag von modbo »

Ich hatte die Schleife damals durch einen regulären Ausdruck ersetzt (nicht auf meinem Schmalz gewachsen ;))

Code: Alles auswählen

if (preg_match('/[^a-z0-9 ]/i',$username)) 
{ 
    $error         = true; 
    $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ).$lang['Username_not_alphanumeric']; 
}
Zwar wird dann die Anzahl der ungültigen zeichen nicht mehr mit ausgegeben, aber ich habe seither keine Probleme ählichen Fehlermeldungen like karstenkurt.

PS: Der Smile stellt hoch-a dar ;)
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Also sicherheitshalber, meint es modbo so:

Code: Alles auswählen

if (preg_match('/[^a-z0-9 ]/i',$username)) 
{ 
    $error         = true; 
    $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ).$lang['Username_not_alphanumeric']; 
}
einfach "Smilies in diese Beitrag deaktiviert" mal ;-)
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

Bringt aber auch keine Besserung!
Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Scheinbar die letzte Änderung doch nicht gemacht, denn dann wird auch angezeigt, welche Zeichen falsch sind ;)
Also so ab Beitrag #19...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
karstenkurt
Beiträge: 597
Registriert: Do 31.Mär, 2005 20:20
Kontaktdaten:

Beitrag von karstenkurt »

Geht.

Danke.
Zuletzt geändert von karstenkurt am Sa 05.Nov, 2005 14:45, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Beiträge 28 und 30 beachtet?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Azrael
Beiträge: 3
Registriert: Sa 08.Jul, 2006 08:17

Beitrag von Azrael »

Hallo,

ich habe ewig nach so einem Snippet gesucht, habe dieses hier gefunden. Gefällt mir sehr gut, ich habe nur ein Problem mit deutschen Umlauten. Zusätzlich zum alphanumerischen möchte ich - _ . ä ö ü ß Ä Ö Ü erlauben. Die Striche sowie die Punkte funktionieren, aber einen Nick mit Umlauten kann ich nicht registrieren.

Woran kann das liegen ?

Code: Alles auswählen

*schnippsel*
	if ( $board_config['allow_namechange'] || $mode == 'register' )
	{

       $check_string = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789._-äöüßÄÖÜ';
       $check_errors = 0;


       for ($i = 1; $i <= strlen($username); $i++)
       {
          $j = $i - 1;
          $check_char = $username{$j};
          if (!strpos($check_string, $check_char))
          {
             $check_errors++;
          }
       }


       if ($check_errors != 0)
       {
          $error = TRUE;
          $error_msg .= ( ( isset($error_msg) ) ? '<br>' : '' ) . sprintf($lang['Username_not_alphanumeric'], $check_errors);
       } 	


*schnippsel*
Zuletzt geändert von Azrael am Sa 08.Jul, 2006 10:18, insgesamt 1-mal geändert.
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Hallo,


also bei mir sieht Deine Zeile (Nr6) so aus:

Code: Alles auswählen

$check_string = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZöÖüÜäÄß0123456789'; 
Da sind nun nicht Punkte und Tief- Bindestriche erlaubt, aber es funktioniert so weit mit den Umlauten.
Du könntest ja mal versuchen, die Reihenfolge etwas zu ändern:

Code: Alles auswählen

$check_string = 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZöÖüÜäÄß0123456789_-.';
Manchmal ist das ja schon die Lösung.



Gruß Max
Azrael
Beiträge: 3
Registriert: Sa 08.Jul, 2006 08:17

Beitrag von Azrael »

nein, das hat leider auch nichts geholfen. könnte das problem dadurch verursacht werden, dass das forum auf UTF-8 arbeitet und nicht ISO-8859 ?
Zuletzt geändert von Azrael am Mi 12.Jul, 2006 12:08, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Das sollte nichts ausmachen, eigentlich...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Azrael
Beiträge: 3
Registriert: Sa 08.Jul, 2006 08:17

Beitrag von Azrael »

naja momentan klappts bei mir leider nicht...

Könnte das jemand bei sich ausprobieren ? So könnten wir den Fehler genauer definieren.
musteng
Beiträge: 250
Registriert: Do 07.Sep, 2006 00:49

Beitrag von musteng »

Und was ist mit dem alten user? die schon komische seichen haben.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die bleiben ja unberührt.
Du kannst diese ja bitten, einen neuen Usernamen zu nennen, aber verwendet werden können die.

Es geht hier auch nur im neue Usernamen, bzw. beim Ändern selbiger.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten