Seite 1 von 1

einschränkungen bzgl nick (zb *)

Verfasst: 04.07.2005 04:37
von yks
hallo,

wie heißt es so schön : 'man kann nicht so dumm denken, wie es kommt' ?
beispiel, registrierter nick : *
die suche nach beiträgen des nicks * etc wird damit etwas witzig. ok, * als name verbieten könnte, aber ich möchte an sich nicht alle möglichen zeichen suchen und eingeben müssen.
an die beiträge kann man auch anders kommen. trotzdem ist es nicht das wahre. daher die frage, wie kann ich nicks zb erst ab 2 oder 3 buchstaben erlauben. was müßte man dazu ändern ?

danke + guten wochenanfang, yks

Verfasst: 04.07.2005 09:18
von punkface
Hallo yks...

functions_validate.php
suchen

Code: Alles auswählen

	$username = str_replace("'", "''", $username);
danach einfügen

Code: Alles auswählen

  if(strlen($username) < 3 )
  {
	  return array('error' => true, 'error_msg' => $lang['Username_size']); 
  }

lang_main.php
suchen

Code: Alles auswählen

$lang['Username_invalid'] = 'Der gewünschte Benutzername enthält ein ungültiges Sonderzeichen (z. B. \').';
danach einfügen

Code: Alles auswählen

$lang['Username_size'] = 'Der angegebene Benutzername ist zu kurz. Benutzernamen müssen mindestens 3 Zeichen lang sein.';
(Wenn dein Forum mehrsprachig ist, musst du alle lang_main.php Dateien anpassen)

Und schon muss jeder ein Benutzernamen angeben, der min. 3 Zeichen lang ist.

Wenn du auch noch das *-Zeichen im Benutzernamen verbieten willst (was ja durchaus Sinnvoll ist):

functions_validate.php
suchen

Code: Alles auswählen

	if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)))
ersetzten mit

Code: Alles auswählen

	if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)) || strpos($username, '*'))
Sag obs funktioniert.. ;)

gruß

Verfasst: 04.07.2005 10:44
von Purzel
Habs gerade eingebaut.
Funktioniert, und Probleme hatt ich bisher auch keine.

Verfasst: 04.07.2005 11:10
von yks
hallo,

funktioniert :)

aber noch 2 fragen habe :
$lang['Username_invalid'] = 'Der gewünschte Benutzername enthält ein ungültiges Sonderzeichen (z. B. \').';
was sollte hier als beispiel genannt sein ? \ oder ' ?
weil ich habe es mit beidem versucht, (h\h, h'h und h/h) und konnte mich jedesmal damit registrieren.
als meldung taucht dies auf (ohne schrägstrich) :
Der gewünschte Benutzername enthält ein ungültiges Sonderzeichen (z. B. ').
und noch eine frage bzgl der in der functions_validate.php, dort steht dies :

Code: Alles auswählen

// Don't allow " and ALT-255 in username.
        if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)) || strpos($username, '*'))
welche sonderzeichen sind in diesem ALT-255 alles drin - ich nehme an, damit ist eine aufzählung gemeint ?
die der zeichentabelle ?

zahlen gehen noch (ok wäre), gerade probiert und ein vor der änderung registrierter mit 2 buchstaben kann auch nach der änderung sich noch einloggen und schreiben. das wäre auch ok (bis jetzt im richtigen forum auch kaum einen 2-buchstabigen regnick gibt).

danke für die schnelle hilfe :))

viele grüße, yks

Verfasst: 04.07.2005 12:00
von punkface
1.
Damit ist ' gemeint.

Der linksseitige Schrägstrich ist nur zum escapen da
-> http://tut.php-q.net/ausgabe.html#u4
-> http://www.inside-php.de/tutorial/PHP-E ... n-PHP.html

Aber stimmt, man kann sich mit Nicks die ' enthalten anmelden.. :-?

2.
örgs.. das hat irgendwas mit ASCII zu tun.
Schau mal hier: http://www.manderby.com/informatik/allg ... /ascii.php

Verfasst: 05.07.2005 00:35
von yks
vielen dank punkface, auch für die links :)

demnach sind aber alle sonderzeichen im namen möglich, außer dem * , richtig ?

viele grüße, yks