123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * UserUtils.php UTF-8
- * 用户面板
- *
- * @date : 2018/4/24 21:58
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @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;
- }
- }
|