/** * 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($username); $username = str_replace(array(unicode_chr(160), unicode_chr(173), unicode_chr(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) { $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; }
} $imagestring = $db->fetch_field($query, 'imagestring'); if (my_strtolower($imagestring) == my_strtolower($mybb->input['value'])) { echo "<success>{$lang->captcha_matches}</success>"; exit; } else { echo "<fail>{$lang->captcha_does_not_match}</fail>"; exit; } } else { if ($mybb->input['action'] == "username_availability") { require_once MYBB_ROOT . "inc/functions_user.php"; $username = $mybb->input['value']; // Fix bad characters $username = trim($username); $username = str_replace(array(unicode_chr(160), unicode_chr(173), unicode_chr(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); if (empty($username)) { echo "<fail>{$lang->banned_characters_username}</fail>"; exit; } header("Content-type: text/xml; charset={$charset}"); // Check if the username belongs to the list of banned usernames. $banned_username = is_banned_username($username, true); if ($banned_username) { echo "<fail>{$lang->banned_username}</fail>"; 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) {