/** * 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; }
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);