Thread Verfasser: TBR
Thread ID: 1452
Thread Info
Es gibt 3 Beiträge zu diesem Thema, und es wurde 165 Mal angesehen.
 Thema drucken
Länge des Nickname festlegen.
TBR
hallo zusammen,

ich wollte mal fragen, ob man die länge des nickname bei der registrierung irgendwo im adminmenü festlegen kann oder ob jemand einen codeschnipsel dafür hat?
 
Systemweb
In der Datei includes/classes/UserFielsInput.class.php, ca. ab Zeile 186 steht dieser Codeabschnitt:

Code 

if (!preg_check("/^[-0-9A-Z_@\s]+$/i", $this->_userName)) {
  $this->_setError("user_name", $locale['u120']);
} else {
  $name_active = dbcount("(user_id)", DB_USERS, "user_name='".$this->_userName."'");
  $name_inactive = dbcount("(user_code)", DB_NEW_USERS, "user_name='".$this->_userName."'");
  if ($name_active == 0 && $name_inactive == 0) {
    $this->_userLogFields[] = "user_name";
    $this->_setDBValue("user_name", $this->_userName);
  } else {
    $this->_setError("user_name", $locale['u121']);
  }
}

Da müsstest du vor dem ersten } else { eine zusätzl. Bedingung einfügen, so dass der Abschnitt anschließend so aussieht:

Code 

if (!preg_check("/^[-0-9A-Z_@\s]+$/i", $this->_userName)) {
  $this->_setError("user_name", $locale['u120']);
} elseif (strlen($this->_userName) > 15) { // Begrenzung auf max. xx Zeichen beim Usernamen
  $this->_setError("user_name", "Der gewählte Benutzername ist zu lang (max. 15 Zeichen)!");
} else {
  $name_active = dbcount("(user_id)", DB_USERS, "user_name='".$this->_userName."'");
  $name_inactive = dbcount("(user_code)", DB_NEW_USERS, "user_name='".$this->_userName."'");
  if ($name_active == 0 && $name_inactive == 0) {
    $this->_userLogFields[] = "user_name";
    $this->_setDBValue("user_name", $this->_userName);
  } else {
    $this->_setError("user_name", $locale['u121']);
  }
}


Diese Lösung ist zwar "hardcoded", also ohne dass die Textausgabe in die Locales aufgenommen wird, aber zumindest funktioniert das. Weder bei Registrierung noch bei späterer Änderung des Benutzernamens (falls erlaubt) sind nun mehr als 15 Zeichen erlaubt.

Statt der 15 kannst du einen eigenen Wert festlegen. Beachte aber dass der 2 mal vorkommt und somit 2x angepasst werden muss:
Zeile
} elseif (strlen($this->_userName) > 15) {
für die gesetzte Begrenzung und
$this->_setError("user_name", "Der gewählte Benutzername ist zu lang (max. 15 Zeichen)!");
für die Fehlermeldung, falls der Wert überschritten wurde.
 
TBR
vielen dank für deine mühe, systemweb.
funktioniert!!!

super beschrieben :-)
 
Springe ins Forum:
Thema Forum Antworten Letzter Beitrag
Festlegen des Zeichensatzes Allgemeine Fragen und Probleme 5 21.01.2018 um 20:54
Panel Höhe mit Inhalt festlegen Infusionen / Mods / Panels 3 19.02.2016 um 11:38
Startseite festlegen Anfängerfragen 6 24.08.2015 um 21:33