示例#1
0
 /**
  * Verifies if a username is valid or invalid.
  *
  * @param boolean True when valid, false when invalid.
  */
 function verify_username()
 {
     global $mybb;
     $username =& $this->data['username'];
     require_once MYBB_ROOT . 'inc/functions_user.php';
     // Fix bad characters
     $username = trim_blank_chrs($username);
     $username = str_replace(array(unichr(160), unichr(173), unichr(0xca), dec_to_utf8(8238), dec_to_utf8(8237), dec_to_utf8(8203)), array(" ", "-", "", "", "", ""), $username);
     // Remove multiple spaces from the username
     $username = preg_replace("#\\s{2,}#", " ", $username);
     // Check if the username is not empty.
     if ($username == '') {
         $this->set_error('missing_username');
         return false;
     }
     // Check if the username belongs to the list of banned usernames.
     if (is_banned_username($username, true)) {
         $this->set_error('banned_username');
         return false;
     }
     // Check for certain characters in username (<, >, &, commas and slashes)
     if (strpos($username, "<") !== false || strpos($username, ">") !== false || strpos($username, "&") !== false || my_strpos($username, "\\") !== false || strpos($username, ";") !== false || strpos($username, ",") !== false || !validate_utf8_string($username, false, false)) {
         $this->set_error("bad_characters_username");
         return false;
     }
     // Check if the username is of the correct length.
     if ($mybb->settings['maxnamelength'] != 0 && my_strlen($username) > $mybb->settings['maxnamelength'] || $mybb->settings['minnamelength'] != 0 && my_strlen($username) < $mybb->settings['minnamelength']) {
         $this->set_error('invalid_username_length', array($mybb->settings['minnamelength'], $mybb->settings['maxnamelength']));
         return false;
     }
     return true;
 }
示例#2
0
     xmlhttp_error($lang->invalid_post_code);
 }
 require_once MYBB_ROOT . "inc/functions_user.php";
 $username = $mybb->get_input('username');
 // Fix bad characters
 $username = trim_blank_chrs($username);
 $username = str_replace(array(unichr(160), unichr(173), unichr(0xca), dec_to_utf8(8238), dec_to_utf8(8237), dec_to_utf8(8203)), array(" ", "-", "", "", "", ""), $username);
 // Remove multiple spaces from the username
 $username = preg_replace("#\\s{2,}#", " ", $username);
 header("Content-type: application/json; charset={$charset}");
 if (empty($username)) {
     echo json_encode($lang->banned_characters_username);
     exit;
 }
 // Check if the username belongs to the list of banned usernames.
 $banned_username = is_banned_username($username, true);
 if ($banned_username) {
     echo json_encode($lang->banned_username);
     exit;
 }
 // Check for certain characters in username (<, >, &, and slashes)
 if (strpos($username, "<") !== false || strpos($username, ">") !== false || strpos($username, "&") !== false || my_strpos($username, "\\") !== false || strpos($username, ";") !== false || strpos($username, ",") !== false || !validate_utf8_string($username, false, false)) {
     echo json_encode($lang->banned_characters_username);
     exit;
 }
 // Check if the username is actually already in use
 $user = get_user_by_username($username);
 $plugins->run_hooks("xmlhttp_username_availability");
 if ($user['uid']) {
     $lang->username_taken = $lang->sprintf($lang->username_taken, htmlspecialchars_uni($username));
     echo json_encode($lang->username_taken);