Sonderzeichen verbieten
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Sonderzeichen verbieten
Habe in der Suche nicht wirklich etwas passedes gefunden.
Gibt es keinen Mod oder Code der mit einem Rundumschlag alle Sonderteichen und auch die ASCII zeichen wie ├ ╔ ┘Æ usw verbietet.
Ich habe schon den Code der die Nicklänge beschränkt eingebaut. Dadurch wird das schon etwas eingeschränkt aber mann kann sich immer noch mit solchem gerümpel anmelden. Dieser Nick ging zum Beispiel. Æ&#;&
Den Mod restrict_username_beta_v1_1_6 hab ich gefunden. Dort muß man aber auch die Zeichen einzeln eintragen wenn ich das richtig sah.
Klar kann man im ACP die Zeichen alle einzeln verbieten aber das dauert weig und dann ist nicht sicher dass man wirklich alle werwischt hat. Das sollte doch anderst zu lösen sein.
Gibt es keinen Mod oder Code der mit einem Rundumschlag alle Sonderteichen und auch die ASCII zeichen wie ├ ╔ ┘Æ usw verbietet.
Ich habe schon den Code der die Nicklänge beschränkt eingebaut. Dadurch wird das schon etwas eingeschränkt aber mann kann sich immer noch mit solchem gerümpel anmelden. Dieser Nick ging zum Beispiel. Æ&#;&
Den Mod restrict_username_beta_v1_1_6 hab ich gefunden. Dort muß man aber auch die Zeichen einzeln eintragen wenn ich das richtig sah.
Klar kann man im ACP die Zeichen alle einzeln verbieten aber das dauert weig und dann ist nicht sicher dass man wirklich alle werwischt hat. Das sollte doch anderst zu lösen sein.
- MagMo
- Ehemaliges Teammitglied
- Beiträge: 584
- Registriert: 30.10.2005 16:06
- Wohnort: Köln
- Kontaktdaten:
Hi,
wie wäre es hiermit:Das habe ich nicht getestet, daher auf jeden Fall die Datei vorher sichern.
Damit sollten nur noch Benutzernamen zulässig sein, die nur Buchstaben (klein und groß), Zahlen, Unterstrich, Bindestrich oder Leerzeichen enthalten. Alles andere sind unzulässige Zeichen.
Den Text ...deine Fehlermeldung... musst du natürlich noch durch eine sinnvolle Fehlermeldung ersetzen bzw. in einem mehrsprachigen Forum durch eine entsprechende language-Variable.
Grüße
MagMo
wie wäre es hiermit:
Code: Alles auswählen
#---[ OPEN ]---
includes/usercp_register.php
#---[ FIND ]---
$username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';
#---[ AFTER, ADD ]---
if (preg_match('/[^a-z0-9_ -]/i', $username))
{
$error = true;
$error_msg .= '...deine Fehlermeldung...';
}
#---[ FIND ]---
$error_msg = $lang['Fields_empty'];
#---[ REPLACE WITH ]---
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
Damit sollten nur noch Benutzernamen zulässig sein, die nur Buchstaben (klein und groß), Zahlen, Unterstrich, Bindestrich oder Leerzeichen enthalten. Alles andere sind unzulässige Zeichen.
Den Text ...deine Fehlermeldung... musst du natürlich noch durch eine sinnvolle Fehlermeldung ersetzen bzw. in einem mehrsprachigen Forum durch eine entsprechende language-Variable.
Grüße
MagMo
Ja das funktioniert. Allerdings sperrt etwas zu viel. Sogar die Umlaute ä,ö,ü,ß funktionieren nicht mehr.
kann man da noch was ändern ?
wenn ich das richtig verstehe gibt man in der Zeile an was erlaubt ist oder
kann man da noch was ändern ?
wenn ich das richtig verstehe gibt man in der Zeile an was erlaubt ist oder
Code: Alles auswählen
if (preg_match('/[^a-z0-9_ -]/i', $username))
Hab es schon rausgefunden. Einfach dran hängen !
Läuft super! Danke für den Code
Code: Alles auswählen
if (preg_match('/[^a-z0-9üöäß_ -]/i', $username))
moin...
also das hab ich auch alles so gemacht und fehlermeldung klappt auch 1A,
allerdings ist es jetzt so bei mir, wenn ich zB im profil was ergänze,
kommt nicht "ihr profil wurde aktualisiert" sondern die selbe fehlermeldung, die ich auch schon habe für den falschen benutzernamen mit ungültigen zeichen drin!?
was kann ich da nun machen?
also das hab ich auch alles so gemacht und fehlermeldung klappt auch 1A,
allerdings ist es jetzt so bei mir, wenn ich zB im profil was ergänze,
kommt nicht "ihr profil wurde aktualisiert" sondern die selbe fehlermeldung, die ich auch schon habe für den falschen benutzernamen mit ungültigen zeichen drin!?
was kann ich da nun machen?
Mfg .deluxe
- MagMo
- Ehemaliges Teammitglied
- Beiträge: 584
- Registriert: 30.10.2005 16:06
- Wohnort: Köln
- Kontaktdaten:
Hi,
Wenn du den Punkt auch erlauben willst, dann mußt du ihn einfach in regulären Ausdruck einfügen. Dabei nicht das Maskieren mit einem Backslash vergessen! Ansonsten erlaubst du wieder jedes Zeichen!
Beispiel:
Grüße
MagMo
Wenn du dort auch den Benutzername ".deluxe" verwendest, dann ist klar warum da die Fehlermeldung kommt. Der Punkt ist kein zulässiges Zeichen nach obiger Regel..deluxe hat geschrieben:...die ich auch schon habe für den falschen benutzernamen mit ungültigen zeichen drin!?
Wenn du den Punkt auch erlauben willst, dann mußt du ihn einfach in regulären Ausdruck einfügen. Dabei nicht das Maskieren mit einem Backslash vergessen! Ansonsten erlaubst du wieder jedes Zeichen!
Beispiel:
Code: Alles auswählen
if (preg_match('/[^a-z0-9\._ -]/i', $username))
MagMo
-
- Mitglied
- Beiträge: 49
- Registriert: 10.08.2005 22:16
Moin seev...seev hat geschrieben:Kann man so etwas auch für den Titel eines Beitrages eingeben. Ich habe Probleme, mit den Keywörtern in der Url., wenn manche Sonderzeichen eingetragen werden. ^^ oder ` zum Beispiel

Hatte hier das Problem schon geschildert: Klick