* @version : HUOSDK 8.0 */ namespace huolib\utils; use huolib\status\MemberStatus; use huolib\tool\KeywordCheck; use huolib\tool\StrUtils; class UserUtils { const USERNAME_MIN_LEN = 4; const USERNAME_MAX_LEN = 32; const NICKNAME_MIN_LEN = 4; const NICKNAME_MAX_LEN = 32; const PASSWORD_MIN_LEN = 6; const PASSWORD_MAX_LEN = 32; /** * 校验用户名是否是手机号 * * @param $username * * @return int */ public static function checkNameMobile($username) { if (StrUtils::checkPhone($username)) { return MemberStatus::USERNAME_LIKE_MOBILE; } return MemberStatus::NO_ERROR; } /** * @param $username * @param $password * * @return int */ public static function checkRegister($username, $password) { if (empty($username)) { return MemberStatus::USERNAME_EMPTY; } if (mb_strlen($username, 'utf-8') < self::USERNAME_MIN_LEN) { return MemberStatus::USERNAME_TOO_SHORT; } if (mb_strlen($username, 'utf-8') > self::USERNAME_MAX_LEN) { return MemberStatus::USERNAME_TOO_LONG; } if (preg_match("/\s/", $username)) { return MemberStatus::USERNAME_BAD_CHAR; } if (preg_match("/^ZN/i", $username)) { return MemberStatus::USERNAME_BAD_CHAR; } $_um_chk = UserUtils::checkNameMobile($username); if (MemberStatus::NO_ERROR == $_um_chk) { if (!preg_match('/^(?![^a-zA-Z]+$).{4,}$/', $username)) { return MemberStatus::USERNAME_BAD_CHAR; } } if (false == StrUtils::checkEnStrAndNum($username)) { return MemberStatus::USERNAME_BAD_CHAR; } if (empty($password)) { return MemberStatus::PASSWORD_EMPTY; } if (preg_match("/\s/", $password)) { return MemberStatus::PASSWORD_BAD_CHAR; } if (strlen($password) > self::PASSWORD_MAX_LEN) { return MemberStatus::PASSWORD_TOO_LONG; } if (strlen($password) < self::PASSWORD_MIN_LEN) { return MemberStatus::PASSWORD_TOO_SHORT; } if (false == StrUtils::checkPrintStr($password)) { return MemberStatus::PASSWORD_BAD_CHAR; } if (KeywordCheck::hasKeyWord($username)) { return MemberStatus::USERNAME_SENSITIVE; } return MemberStatus::NO_ERROR; } /** * @param $password * * @return int */ public static function checkPassword($password) { if (empty($password)) { return MemberStatus::PASSWORD_EMPTY; } if (preg_match("/\s/", $password)) { return MemberStatus::PASSWORD_BAD_CHAR; } if (strlen($password) > self::PASSWORD_MAX_LEN) { return MemberStatus::PASSWORD_TOO_LONG; } if (strlen($password) < self::PASSWORD_MIN_LEN) { return MemberStatus::PASSWORD_TOO_SHORT; } return MemberStatus::NO_ERROR; } /** * 校验登陆参数 * * @param $username * @param $password * * @return int */ public static function checkLogin($username, $password) { if (empty($username)) { return MemberStatus::USERNAME_EMPTY; } if (empty($password)) { return MemberStatus::PASSWORD_EMPTY; } return MemberStatus::NO_ERROR; } public static function checkNickname($nickname) { if (empty($nickname)) { return MemberStatus::NICKNAME_EMPTY; } if (mb_strlen($nickname, 'utf-8') < self::NICKNAME_MIN_LEN) { return MemberStatus::NICKNAME_TOO_SHORT; } if (mb_strlen($nickname, 'utf-8') > self::NICKNAME_MAX_LEN) { return MemberStatus::NICKNAME_TOO_LONG; } if (KeywordCheck::hasKeyWord($nickname)) { return MemberStatus::NICKNAME_SENSITIVE; } return MemberStatus::NO_ERROR; } }