Author: Medz Seven (lovevipdsw@vip.qq.com)
 /**
  * 检查用户是否存在
  *
  * @param  strint $user 用户标识 uid|phone|uname|email
  * @return array
  * @author Medz Seven <*****@*****.**>
  **/
 public function hasUser($user, $isUid = false)
 {
     if ($isUid) {
         $users = Models\User::existent()->audit()->byUid($user)->get();
     } elseif (MedzValidator::isEmail($user)) {
         $users = Models\User::existent()->audit()->byEmail($user)->get();
     } else {
         $users = Models\User::existent()->audit()->where('uid', '=', intval($user))->orWhere('uname', '=', EmojiFormat::en($user))->orWhere('phone', '=', EmojiFormat::en($user))->get();
     }
     return $users;
 }
 /**
  * 使用本地帐号登陆,无密码
  * @param string $login 登录名称,邮箱或用户名
  * @param boolean $is_remember_me 是否记录登录状态,默认为false
  * @return boolean 是否登录成功
  */
 public function loginLocalWithoutPassword($login, $is_remember_me = false)
 {
     $login = addslashes($login);
     if (empty($login)) {
         $this->error = L('PUBLIC_ACCOUNT_NOTEMPTY');
         // 帐号不能为空
         return false;
     }
     // if($this->isValidEmail($login)){
     // 	$map = " (login='******' OR email='{$login}' ) AND is_del=0 ";
     // }else{
     // 	$map = " (login='******' OR uname='{$login}' ) AND is_del=0 ";
     // }
     // # 判断是否是email
     if (MedzValidator::isEmail($login)) {
         $map = '`email` LIKE "' . $login . '" AND `is_del` = 0';
         // # 判断是否是手机号码
     } elseif (MedzValidator::isTelNumber($login)) {
         $map = '`phone` = ' . $login . ' AND `is_del` = 0';
         // # 默认userName方式查询用户
     } else {
         $map = '`uname` LIKE "' . $login . '" AND `is_del` = 0';
     }
     $user = M('User')->where($map)->find();
     if (!$user) {
         $this->error = L('PUBLIC_ACCOUNT_NOEXIST');
         // 帐号不存在
         return false;
     }
     return $user['uid'] > 0 ? $this->_recordLogin($user['uid'], $is_remember_me) : false;
 }
Beispiel #3
0
 /**
  * 用户第三方帐号绑定情况 --using
  *
  * @return 第三方列表及是否绑定
  */
 public function user_bind()
 {
     // 可同步平台
     $validPublish = array('sina', 'qq', 'qzone');
     // 可绑定平台
     $validAlias = array('sina' => '新浪微博', 'qzone' => 'QQ互联', 'weixin' => '微信');
     $bind = M('login')->where('uid=' . $this->mid)->findAll();
     // 用户已绑定数据
     $config = model('AddonData')->lget('login');
     // 检查可同步的平台的key值是否可用
     foreach ($validAlias as $k => $v) {
         // 检查是否在后台config设置好
         if (!in_array($k, $config['open']) && $k != 'weixin') {
             continue;
         }
         if (in_array($k, $validPublish)) {
             $can_sync = true;
         } else {
             $can_sync = false;
         }
         $is_bind = false;
         $is_sync = false;
         foreach ($bind as $value) {
             if ($value['type'] == $k) {
                 $is_bind = true;
             }
             if ($value['type'] == $k && $value['is_sync']) {
                 $is_sync = true;
             }
             if ($value['type'] == $k && $value['bind_time']) {
                 $bind_time = $value['bind_time'];
             }
             if ($value['type'] == $k && $value['bind_user']) {
                 $bind_user = $value['bind_user'];
             }
         }
         $bindInfo[] = array('type' => $k, 'name' => $validAlias[$k], 'isBind' => $is_bind ? 1 : 0);
     }
     // 手机号
     $tel_bind[0]['type'] = 'phone';
     $tel_bind[0]['name'] = '手机号';
     $login = model('User')->where('uid=' . $this->mid)->field('phone')->getField('phone');
     if (MedzValidator::isTelNumber($login)) {
         $tel_bind[0]['isBind'] = 1;
     } else {
         $tel_bind[0]['isBind'] = 0;
     }
     $bindInfo = array_merge($tel_bind, $bindInfo);
     return $bindInfo;
 }
Beispiel #4
0
/**
 * 检查Email地址是否合法
 *
 * @return bool
 */
function isValidEmail($email)
{
    return MedzValidator::isEmail($email);
}