Sonderzeichen verbieten

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.
Benutzeravatar
mark2
Mitglied
Beiträge: 454
Registriert: 22.02.2006 23:05
Wohnort: Kempten

Sonderzeichen verbieten

Beitrag von mark2 »

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.
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,

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'];
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
Meine MODs
Kein Support via PN!
Benutzeravatar
mark2
Mitglied
Beiträge: 454
Registriert: 22.02.2006 23:05
Wohnort: Kempten

Beitrag von mark2 »

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

Code: Alles auswählen

if (preg_match('/[^a-z0-9_ -]/i', $username)) 
Benutzeravatar
mark2
Mitglied
Beiträge: 454
Registriert: 22.02.2006 23:05
Wohnort: Kempten

Beitrag von mark2 »

Hab es schon rausgefunden. Einfach dran hängen !

Code: Alles auswählen

if (preg_match('/[^a-z0-9üöäß_ -]/i', $username)) 
Läuft super! Danke für den Code
.deluxe
Mitglied
Beiträge: 6
Registriert: 03.10.2006 19:44
Wohnort: Eggenstein
Kontaktdaten:

Beitrag von .deluxe »

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?
Mfg .deluxe
Benutzeravatar
mark2
Mitglied
Beiträge: 454
Registriert: 22.02.2006 23:05
Wohnort: Kempten

Beitrag von mark2 »

Dann wird wohl dein Benutzername ein ungültiges Zeichen enthalten.

Wie lautet dein Benutzername in deinem Board ?

Entweder du änderst deinen Namen oder du fügst das Zeichen das du verwendest hinzu.
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
.deluxe hat geschrieben:...die ich auch schon habe für den falschen benutzernamen mit ungültigen zeichen drin!?
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.
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))
Grüße
MagMo
Meine MODs
Kein Support via PN!
seev
Mitglied
Beiträge: 108
Registriert: 14.12.2006 18:28
Kontaktdaten:

Beitrag von seev »

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
ultrasmd77
Mitglied
Beiträge: 49
Registriert: 10.08.2005 22:16

Beitrag von ultrasmd77 »

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
Moin seev... :D

Hatte hier das Problem schon geschildert: Klick
seev
Mitglied
Beiträge: 108
Registriert: 14.12.2006 18:28
Kontaktdaten:

Beitrag von seev »

Die Online Welt ist klein :D

Hat jemand eine Lösung für mein Problem?
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“