public function index($page = 1, $issue_id = 0)
 {
     if (is_login()) {
         $this->redirect('Mob/Weibo/index');
     } else {
         $ph = array();
         check_reg_type('username') && ($ph[] = L("username"));
         check_reg_type('email') && ($ph[] = L("email"));
         check_reg_type('mobile') && ($ph[] = L("phone_number"));
         $this->assign('ph', implode('/', $ph));
         $this->display();
     }
 }
 /**
  * sendVerify 发送验证码
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function sendVerify()
 {
     $aAccount = $cUsername = I('post.account', '', 'op_t');
     $aType = I('post.type', '', 'op_t');
     $aType = $aType == 'mobile' ? 'mobile' : 'email';
     $aAction = I('post.action', 'config', 'op_t');
     if (!check_reg_type($aType)) {
         $str = $aType == 'mobile' ? L('_PHONE_') : L('_EMAIL_');
         $this->error($str . L('_ERROR_OPTIONS_CLOSED_') . L('_EXCLAMATION_'));
     }
     if (empty($aAccount)) {
         $this->error(L('_ERROR_ACCOUNT_CANNOT_EMPTY_'));
     }
     check_username($cUsername, $cEmail, $cMobile);
     $time = time();
     if ($aType == 'mobile') {
         $resend_time = modC('SMS_RESEND', '60', 'USERCONFIG');
         if ($time <= session('verify_time') + $resend_time) {
             $this->error(L('_ERROR_WAIT_1_') . ($resend_time - ($time - session('verify_time'))) . L('_ERROR_WAIT_2_'));
         }
     }
     if ($aType == 'email' && empty($cEmail)) {
         $this->error(L('_ERROR__EMAIL_'));
     }
     if ($aType == 'mobile' && empty($cMobile)) {
         $this->error(L('_ERROR_PHONE_'));
     }
     $checkIsExist = UCenterMember()->where(array($aType => $aAccount))->find();
     if ($checkIsExist) {
         $str = $aType == 'mobile' ? L('_PHONE_') : L('_EMAIL_');
         $this->error(L('_ERROR_USED_1_') . $str . L('_ERROR_USED_2_') . L('_EXCLAMATION_'));
     }
     $verify = D('Verify')->addVerify($aAccount, $aType);
     if (!$verify) {
         $this->error(L('_ERROR_FAIL_SEND_') . L('_EXCLAMATION_'));
     }
     $res = A(ucfirst($aAction))->doSendVerify($aAccount, $verify, $aType);
     if ($res === true) {
         if ($aType == 'mobile') {
             session('verify_time', $time);
         }
         $this->success(L('_ERROR_SUCCESS_SEND_'));
     } else {
         $this->error($res);
     }
 }
Esempio n. 3
0
 /**
  * sendVerify 发送验证码
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function sendVerify()
 {
     $aAccount = $cUsername = I('post.account', '', 'op_t');
     $aType = I('post.type', '', 'op_t');
     $aType = $aType == 'mobile' ? 'mobile' : 'email';
     $aAction = I('post.action', 'config', 'op_t');
     if (!check_reg_type($aType)) {
         $str = $aType == 'mobile' ? '手机' : '邮箱';
         $this->error($str . '选项已关闭!');
     }
     if (empty($aAccount)) {
         $this->error('帐号不能为空');
     }
     check_username($cUsername, $cEmail, $cMobile);
     $time = time();
     if ($aType == 'mobile') {
         $resend_time = modC('SMS_RESEND', '60', 'USERCONFIG');
         if ($time <= session('verify_time') + $resend_time) {
             $this->error('请' . ($resend_time - ($time - session('verify_time'))) . '秒后再发');
         }
     }
     if ($aType == 'email' && empty($cEmail)) {
         $this->error('请验证邮箱格式是否正确');
     }
     if ($aType == 'mobile' && empty($cMobile)) {
         $this->error('请验证手机格式是否正确');
     }
     $checkIsExist = UCenterMember()->where(array($aType => $aAccount))->find();
     if ($checkIsExist) {
         $str = $aType == 'mobile' ? '手机' : '邮箱';
         $this->error('该' . $str . '已被其他用户使用!');
     }
     $verify = D('Verify')->addVerify($aAccount, $aType);
     if (!$verify) {
         $this->error('发送失败!');
     }
     $res = A(ucfirst($aAction))->doSendVerify($aAccount, $verify, $aType);
     if ($res === true) {
         if ($aType == 'mobile') {
             session('verify_time', $time);
         }
         $this->success('发送成功,请查收');
     } else {
         $this->error($res);
     }
 }
 /**
  * sendVerify 发送验证码
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function sendVerify()
 {
     $aAccount = $cUsername = I('post.account', '', 'op_t');
     #=》获取邮件地址或是手机号码
     $aType = I('post.type', '', 'op_t');
     $aType = $aType == 'mobile' ? 'mobile' : 'email';
     #=》获取注册的方式,邮件或是手机
     $aAction = I('post.action', 'config', 'op_t');
     if (!check_reg_type($aType)) {
         $str = $aType == 'mobile' ? '手机' : '邮箱';
         $this->error($str . '选项已关闭!');
     }
     if (empty($aAccount)) {
         $this->error('帐号不能为空');
     }
     check_username($cUsername, $cEmail, $cMobile, $cCompany);
     if ($aType == 'email' && empty($cEmail)) {
         $this->error('请验证邮箱格式是否正确');
     }
     if ($aType == 'mobile' && empty($cMobile)) {
         $this->error('请验证手机格式是否正确');
     }
     $checkIsExist = UCenterMember()->where(array($aType => $aAccount))->find();
     if ($checkIsExist) {
         $str = $aType == 'mobile' ? '手机' : '邮箱';
         $this->error('该' . $str . '已被其他用户使用!');
     }
     #=>添加一条验证记录,并返回产生的随机数
     $verify = D('Verify')->addVerify($aAccount, $aType);
     if (!$verify) {
         $this->error('发送失败!');
     }
     #=> 实例化当前模块的控制器
     $res = A(ucfirst($aAction))->doSendVerify($aAccount, $verify, $aType);
     if ($res === true) {
         $this->success('发送成功,请查收');
     } else {
         $this->error($res);
     }
 }
 /**
  * saveUsername  修改用户名
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function saveUsername()
 {
     $aUsername = $cUsername = I('post.username', '', 'op_t');
     if (!check_reg_type('username')) {
         $this->error('用户名选项已关闭!');
     }
     //判断是否登录
     if (!is_login()) {
         $this->error('请登录后操作!');
     }
     //判断提交的用户名是否为空
     if (empty($aUsername)) {
         $this->error('用户名不能为空!');
     }
     check_username($cUsername, $cEmail, $cMobile);
     if (empty($cUsername)) {
         !empty($cEmail) && ($str = '邮箱');
         !empty($cMobile) && ($str = '手机');
         $this->error('用户名不能为' . $str);
     }
     //验证用户名是否是字母和数字
     preg_match("/^[a-zA-Z0-9_]{4,32}\$/", $aUsername, $match);
     if (!$match) {
         $this->error('用户名只允许英文字母和数字');
     }
     $uid = get_uid();
     $mUcenter = UCenterMember();
     //判断用户是否已设置用户名
     $username = $mUcenter->where(array('id' => $uid))->getField('username');
     if (empty($username)) {
         //判断修改的用户名是否已存在
         $id = $mUcenter->where(array('username' => $aUsername))->getField('id');
         if ($id) {
             $this->error('该用户名已经存在!');
         } else {
             //修改用户名
             $rs = $mUcenter->where(array('id' => $uid))->save(array('username' => $aUsername));
             if (!$rs) {
                 $this->error('设置失败!');
             }
             $this->success('设置成功!', 'refresh');
         }
     }
     $this->error('用户名已经确定不允许修改!');
 }
Esempio n. 6
0
 public function doLogin()
 {
     $aUsername = $username = I('post.username', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRemember = I('post.remember', 0, 'intval');
     /* 检测验证码 */
     if (check_verify_open('login')) {
         if (!check_verify($aVerify)) {
             $res['info'] = "验证码输入错误。";
             return $res;
         }
     }
     /* 调用UC登录接口登录 */
     check_username($aUsername, $email, $mobile, $aUnType);
     if (!check_reg_type($aUnType)) {
         $res['info'] = "该类型未开放登录。";
     }
     $uid = UCenterMember()->login($username, $aPassword, $aUnType);
     if (0 < $uid) {
         //UC登录成功
         /* 登录用户 */
         $Member = D('Member');
         $args['uid'] = $uid;
         $args = array('uid' => $uid, 'nickname' => $username);
         check_and_add($args);
         if ($Member->login($uid, $aRemember == 1)) {
             //登录用户
             //TODO:跳转到登录前页面
             if (UC_SYNC && $uid != 1) {
                 //同步登录到UC
                 $ref = M('ucenter_user_link')->where(array('uid' => $uid))->find();
                 $html = '';
                 $html = uc_user_synlogin($ref['uc_uid']);
             }
             $oc_config = (include_once './OcApi/oc_config.php');
             if ($oc_config['SSO_SWITCH']) {
                 include_once './OcApi/OCenter/OCenter.php';
                 $OCApi = new \OCApi();
                 $html = $OCApi->ocSynLogin($uid);
             }
             $res['status'] = 1;
             $res['info'] = $html;
             //$this->success($html, get_nav_url(C('AFTER_LOGIN_JUMP_URL')));
         } else {
             $res['info'] = $Member->getError();
         }
     } else {
         //登录失败
         switch ($uid) {
             case -1:
                 $res['info'] = '用户不存在或被禁用!';
                 break;
                 //系统级别禁用
             //系统级别禁用
             case -2:
                 $res['info'] = '密码错误!';
                 break;
             default:
                 $res['info'] = $uid;
                 break;
                 // 0-接口参数错误(调试阶段使用)
         }
     }
     return $res;
 }
Esempio n. 7
0
 /**
  * 注册页
  */
 public function register()
 {
     $this->setMobTitle('注册');
     $aRegisteredtype = I('post.registeredtype', '', 'op_t');
     switch ($aRegisteredtype) {
         case "username":
             $aRegType = "username";
             $aUsername = $username = I('post.username', '', 'op_t');
             break;
         case "email":
             $aRegType = "email";
             $aUsername = $username = I('post.email', '', 'op_t');
             break;
         case "mobile":
             $aRegType = "mobile";
             $aUsername = $username = I('post.mobnumber', '', 'op_t');
             break;
     }
     //获取参数
     //    $aUsername = $username = I('post.username', '', 'op_t');
     $aNickname = I('post.nickname', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRegVerify = I('post.reg_verify', 0, 'intval');
     //    $aRegType = I('post.reg_type', '', 'op_t');
     $aStep = I('get.step', 'start', 'op_t');
     $aRole = I('post.role', 0, 'intval');
     //dump($aVerify);
     $this->setTopTitle('欢迎注册');
     if (!modC('REG_SWITCH', '', 'USERCONFIG')) {
         $this->error('注册已关闭');
     }
     if (IS_POST) {
         //注册用户
         /*            $register_type = modC('REGISTER_TYPE', 'normal', 'Invite');
                     $register_type = explode(',', $register_type);
                     if (!in_array('normal', $register_type)) {
                         $this->ajaxReturn(array('status'=>0,'info'=>"请先输入邀请码,收到邀请的用户才能注册该网站!"));
                     }*/
         $return = check_action_limit('reg', 'ucenter_member', 1, 1, true);
         if ($return && !$return['state']) {
             $this->error($return['info'], $return['url']);
         }
         if (strlen($aNickname) <= intval(modC('NICKNAME_MIN_LENGTH', '2', 'USERCONFIG'))) {
             $this->error('昵称请不少于' . modC('NICKNAME_MIN_LENGTH', '2', 'USERCONFIG') . '个字符');
         }
         if (strlen($aNickname) >= modC('NICKNAME_MAX_LENGTH', '32', 'USERCONFIG')) {
             $this->error('昵称请不多于' . modC('NICKNAME_MAX_LENGTH', '32', 'USERCONFIG') . '个字符');
         }
         if (strlen($aUsername) <= modC('USERNAME_MIN_LENGTH', '2', 'USERCONFIG')) {
             $this->error('用户名请不少于' . modC('USERNAME_MIN_LENGTH', '2', 'USERCONFIG') . '个字符');
         }
         if (strlen($aUsername) >= modC('USERNAME_MAX_LENGTH', '32', 'USERCONFIG')) {
             $this->error('用户名请不多于' . modC('USERNAME_MAX_LENGTH', '32', 'USERCONFIG') . '个字符');
         }
         if (empty($aPassword)) {
             $this->error('请输入密码');
         }
         if (strlen($aPassword) < 6 || strlen($aPassword) > 32) {
             $this->error('密码长度在6-32位之间');
         }
         /* 检测验证码 */
         if (check_verify_open('reg')) {
             //  dump(check_verify_open('reg'));
             if (!check_verify($aVerify)) {
                 $this->error('验证码输入错误。');
             }
         }
         if (!$aRole) {
             $this->error('请选择角色。');
         }
         if ($aRegType == 'mobile' && modC('MOBILE_VERIFY_TYPE', 0, 'USERCONFIG') == 1 || modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 2 && $aRegType == 'email') {
             if (!D('Verify')->checkVerify($aUsername, $aRegType, $aRegVerify, 0)) {
                 $str = $aRegType == 'mobile' ? '手机' : '邮箱';
                 $this->error($str . '验证失败');
             }
         }
         $aUnType = 0;
         //获取注册类型
         check_username($aUsername, $email, $mobile, $aUnType);
         if ($aRegType == 'email' && $aUnType != 2) {
             $this->error('邮箱格式不正确');
         }
         if ($aRegType == 'mobile' && $aUnType != 3) {
             $this->error('手机格式不正确');
         }
         if ($aRegType == 'username' && $aUnType != 1) {
             $this->error('用户名格式不正确');
         }
         if (!check_reg_type($aUnType)) {
             $this->error('该类型未开放注册。');
         }
         $aCode = I('post.code', '', 'op_t');
         if (!$this->checkInviteCode($aCode)) {
             $this->error('非法邀请码!');
         }
         /* 注册用户 */
         $uid = UCenterMember()->register($aUsername, $aNickname, $aPassword, $email, $mobile, $aUnType);
         if (0 < $uid) {
             //注册成功
             $this->initInviteUser($uid, $aCode, $aRole);
             $this->initRoleUser($aRole, $uid);
             //初始化角色用户
             if (modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 1 && $aUnType == 2) {
                 set_user_status($uid, 3);
                 $verify = D('Verify')->addVerify($email, 'email', $uid);
                 $res = $this->sendActivateEmail($email, $verify, $uid);
                 //发送激活邮件
                 // $this->success('注册成功,请登录邮箱进行激活');
             }
             $uid = UCenterMember()->login($username, $aPassword, $aUnType);
             //通过账号密码取到uid
             $res = D('Mob/Member')->mobileLogin($uid, false, $aRole);
             //登陆
             if ($res) {
                 $this->ajaxReturn(array('status' => 1));
             } else {
                 $this->ajaxReturn(array('status' => 0, 'info' => '注册失败'));
             }
         } else {
             //注册失败,显示错误信息
             $this->ajaxReturn(array('status' => 0, 'info' => '注册失败'));
         }
     } else {
         //显示注册表单
         if (is_login()) {
             redirect(U(C('AFTER_LOGIN_JUMP_URL')));
         }
         $this->checkRegisterType();
         $aType = I('get.type', '', 'op_t');
         $regSwitch = modC('REG_SWITCH', '', 'USERCONFIG');
         $regSwitch = explode(',', $regSwitch);
         $this->assign('regSwitch', $regSwitch);
         $this->assign('step', $aStep);
         $this->assign('type', $aType == '' ? 'username' : $aType);
         $this->display();
     }
 }
 /**
  * register  注册页面
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function register()
 {
     //获取参数
     $aUsername = $username = I('post.username', '', 'op_t');
     $aNickname = I('post.nickname', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRegVerify = I('post.reg_verify', 0, 'intval');
     $aRegType = I('post.reg_type', '', 'op_t');
     $aStep = I('get.step', 'start', 'op_t');
     $aRole = I('post.role', 0, 'intval');
     //$aTuijian = I('post.tuijian',0,'intval');
     $aYaoqingma = I('post.yaoqingma', 0, 'intval');
     if (!modC('REG_SWITCH', '', 'USERCONFIG')) {
         $this->error('注册已关闭');
     }
     if (IS_POST) {
         //注册用户
         $return = check_action_limit('reg', 'ucenter_member', 1, 1, true);
         if ($return && !$return['state']) {
             $this->error($return['info'], $return['url']);
         }
         /* 检测验证码 */
         if (check_verify_open('reg')) {
             if (!check_verify($aVerify)) {
                 $this->error('验证码输入错误。');
             }
         }
         if (!$aRole) {
             $this->error('请选择角色。');
         }
         /*  检测邀请码 */
         if ($aYaoqingma) {
             $res = D('broker')->checkYaoqingma($aYaoqingma);
             if (!$res) {
                 $this->error('sorry,邀请码不正确');
             }
         }
         //检测短信
         if ($aRegType == 'mobile' && modC('MOBILE_VERIFY_TYPE', 0, 'USERCONFIG') == 1 || modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 2 && $aRegType == 'email') {
             if (!D('Verify')->checkVerify($aUsername, $aRegType, $aRegVerify, 0)) {
                 $str = $aRegType == 'mobile' ? '手机' : '邮箱';
                 $this->error($str . '验证失败');
             }
         }
         $aUnType = 0;
         //获取注册类型
         check_username($aUsername, $email, $mobile, $aUnType);
         if ($aRegType == 'email' && $aUnType != 2) {
             $this->error('邮箱格式不正确');
         }
         if ($aRegType == 'mobile' && $aUnType != 3) {
             $this->error('手机格式不正确');
         }
         if ($aRegType == 'username' && $aUnType != 1) {
             $this->error('用户名格式不正确');
         }
         if (!check_reg_type($aUnType)) {
             $this->error('该类型未开放注册。');
         }
         $aCode = I('post.code', '', 'op_t');
         if (!$this->checkInviteCode($aCode)) {
             $this->error('非法邀请码!');
         }
         /* 注册用户 */
         $uid = UCenterMember()->register($aUsername, $aNickname, $aPassword, $email, $mobile, $aUnType);
         if (0 < $uid) {
             //注册成功
             ///////////////////
             //  初始化说说   //
             ///////////////////
             $this->initialShuo($uid);
             $this->initInviteUser($uid, $aCode, $aRole);
             //邀请用户?
             $this->initRoleUser($aRole, $uid);
             //初始化角色用户
             //通常用不上?
             if (modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 1 && $aUnType == 2) {
                 set_user_status($uid, 3);
                 $verify = D('Verify')->addVerify($email, 'email', $uid);
                 $res = $this->sendActivateEmail($email, $verify, $uid);
                 //发送激活邮件
                 // $this->success('注册成功,请登录邮箱进行激活');
             }
             $uid = UCenterMember()->login($username, $aPassword, $aUnType);
             //通过账号密码取到uid
             //判断邀请码
             if ($aYaoqingma) {
                 $res = D('broker')->addPid($uid, $aYaoqingma);
             }
             D('Member')->login($uid, false, $aRole);
             //实际登陆
             //$this->success('注册成功', U('Ucenter/member/step', array('step' => get_next_step('start'))));
         } else {
             //注册失败,显示错误信息
             $this->error($this->showRegError($uid));
         }
     } else {
         //显示注册表单
         //已经把这部分代码迁移到mobregister中
         if (is_login()) {
             redirect(U(C('AFTER_LOGIN_JUMP_URL')));
         }
         $this->checkRegisterType();
         $aType = I('get.type', '', 'op_t');
         $regSwitch = modC('REG_SWITCH', '', 'USERCONFIG');
         $regSwitch = explode(',', $regSwitch);
         $this->assign('regSwitch', $regSwitch);
         $this->assign('step', $aStep);
         $this->assign('type', $aType == '' ? 'username' : $aType);
         $this->display();
     }
 }
 /**
  * register  注册页面
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function register()
 {
     //获取参数
     $aUsername = $username = I('post.username', '', 'op_t');
     $aNickname = I('post.nickname', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRegVerify = I('post.reg_verify', '', 'op_t');
     $aRegType = I('post.reg_type', '', 'op_t');
     $aStep = I('get.step', 'start', 'op_t');
     $aRole = I('post.role', 0, 'intval');
     if (!modC('REG_SWITCH', '', 'USERCONFIG')) {
         $this->error(L('_ERROR_REGISTER_CLOSED_'));
     }
     if (IS_POST) {
         //注册用户
         $return = check_action_limit('reg', 'ucenter_member', 1, 1, true);
         if ($return && !$return['state']) {
             $this->error($return['info'], $return['url']);
         }
         /* 检测验证码 */
         if (check_verify_open('reg')) {
             if (!check_verify($aVerify)) {
                 $this->error(L('_ERROR_VERIFY_CODE_') . L('_PERIOD_'));
             }
         }
         if (!$aRole) {
             $this->error(L('_ERROR_ROLE_SELECT_') . L('_PERIOD_'));
         }
         if ($aRegType == 'mobile' && modC('MOBILE_VERIFY_TYPE', 0, 'USERCONFIG') == 1 || modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 2 && $aRegType == 'email') {
             if (!D('Verify')->checkVerify($aUsername, $aRegType, $aRegVerify, 0)) {
                 $str = $aRegType == 'mobile' ? L('_PHONE_') : L('_EMAIL_');
                 $this->error($str . L('_FAIL_VERIFY_'));
             }
         }
         $aUnType = 0;
         //获取注册类型
         check_username($aUsername, $email, $mobile, $aUnType);
         if ($aRegType == 'email' && $aUnType != 2) {
             $this->error(L('_ERROR_EMAIL_FORMAT_'));
         }
         if ($aRegType == 'mobile' && $aUnType != 3) {
             $this->error(L('_ERROR_PHONE_FORMAT_'));
         }
         if ($aRegType == 'username' && $aUnType != 1) {
             $this->error(L('_ERROR_USERNAME_FORMAT_'));
         }
         if (!check_reg_type($aUnType)) {
             $this->error(L('_ERROR_REGISTER_NOT_OPENED_') . L('_PERIOD_'));
         }
         $aCode = I('post.code', '', 'op_t');
         if (!$this->checkInviteCode($aCode)) {
             $this->error(L('_ERROR_INV_ILLEGAL_') . L('_EXCLAMATION_'));
         }
         /* 注册用户 */
         $ucenterMemberModel = UCenterMember();
         $uid = $ucenterMemberModel->register($aUsername, $aNickname, $aPassword, $email, $mobile, $aUnType);
         if (0 < $uid) {
             //注册成功
             $this->initInviteUser($uid, $aCode, $aRole);
             $ucenterMemberModel->initRoleUser($aRole, $uid);
             //初始化角色用户
             if (modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 1 && $aUnType == 2) {
                 set_user_status($uid, 3);
                 $verify = D('Verify')->addVerify($email, 'email', $uid);
                 $res = $this->sendActivateEmail($email, $verify, $uid);
                 //发送激活邮件
                 // $this->success('注册成功,请登录邮箱进行激活');
             }
             $uid = $ucenterMemberModel->login($username, $aPassword, $aUnType);
             //通过账号密码取到uid
             D('Member')->login($uid, false, $aRole);
             //登陆
             $this->success('', U('Ucenter/member/step', array('step' => get_next_step('start'))));
         } else {
             //注册失败,显示错误信息
             $this->error($this->showRegError($uid));
         }
     } else {
         //显示注册表单
         if (is_login()) {
             redirect(U('Home/Index/index'));
         }
         $this->checkRegisterType();
         $aType = I('get.type', '', 'op_t');
         $regSwitch = modC('REG_SWITCH', '', 'USERCONFIG');
         $regSwitch = explode(',', $regSwitch);
         $this->assign('regSwitch', $regSwitch);
         $this->assign('step', $aStep);
         $this->assign('type', $aType == '' ? 'username' : $aType);
         $this->display();
     }
 }
Esempio n. 10
0
 /**
  * register  注册页面
  */
 public function register($domain = null)
 {
     //     	$domain = return_url();
     //获取参数
     $aUsername = $username = I('post.username', '', 'op_t');
     $aNickname = I('post.nickname', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRegVerify = I('post.reg_verify', 0, 'intval');
     $aRegType = I('post.reg_type', '', 'op_t');
     $aStep = I('get.step', 'start', 'op_t');
     $aRole = I('post.role', 0, 'intval');
     $acid = I('post.cid', '', 'op_t');
     $aCompany = '';
     if (!modC('REG_SWITCH', '', 'USERCONFIG')) {
         $this->error('注册已关闭');
     }
     if (IS_POST) {
         //注册用户
         $return = check_action_limit('reg', 'ucenter_member', 1, 1, true);
         if ($return && !$return['state']) {
             $this->error($return['info'], $return['url']);
         }
         /* 检测验证码 */
         if (check_verify_open('reg')) {
             if (!check_verify($aVerify)) {
                 $this->error('验证码输入错误。');
             }
         }
         /**
          * 手机验证码和邮箱验证码的验证
          */
         if ($aRegType == 'mobile' && modC('MOBILE_VERIFY_TYPE', 0, 'USERCONFIG') == 1 || modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 2 && $aRegType == 'email') {
             if (!D('Verify')->checkVerify($aUsername, $aRegType, $aRegVerify, 0)) {
                 $str = $aRegType == 'mobile' ? '手机' : '邮箱';
                 $this->error($str . '验证失败');
             }
         }
         /**
          * 根据编号查询集团  // 判断用户IP是否是公司集团IP
          */
         if (!empty($acid) && $aRegType == 'company') {
             $company = M('Company')->find((int) $acid);
             $aCompany = $company['cname'];
             $checkIp = new \Expend\CheckIP($company['cip']);
             if (TRUE !== $checkIp->check(get_client_ip()) && ip2long(get_client_ip()) !== ip2long($company['cip'])) {
                 $this->error('你的IP地址不是集团IP');
             }
         } else {
             $acid = 0;
         }
         $aUnType = 0;
         //获取注册类型
         check_username($aUsername, $email, $mobile, $aCompany, $aUnType);
         if ($aRegType == 'email' && $aUnType != 2) {
             $this->error('邮箱格式不正确');
         }
         if ($aRegType == 'mobile' && $aUnType != 3) {
             $this->error('手机格式不正确');
         }
         if ($aRegType == 'username' && $aUnType != 1) {
             $this->error('用户名格式不正确');
         }
         if (!check_reg_type($aUnType)) {
             $this->error('该类型未开放注册。');
         }
         /* 注册用户  */
         $uid = UCenterMember()->register($aUsername, $aNickname, $aPassword, $email, $mobile, $acid, $aUnType, $domain);
         if (0 < $uid) {
             #初始化角色用户,并设置相关的用户角色信息
             $this->initRoleUser($aRole, $uid);
             if (modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 1 && $aUnType == 2) {
                 set_user_status($uid, 3);
                 $verify = D('Verify')->addVerify($email, 'email', $uid);
                 $res = $this->sendActivateEmail($email, $verify, $uid);
                 //发送激活邮件
             }
             $this->success('注册成功', U('Ucenter/member/register', array('mes' => 'login')));
         } else {
             //注册失败,显示错误信息
             $this->error($this->showRegError($uid));
         }
     } else {
         //显示注册表单
         if (is_login()) {
             redirect(U(C('AFTER_LOGIN_JUMP_URL')));
         }
         if ($_GET['mes']) {
             $this->assign('mes', 'login');
         }
         //显示集团
         $company = D('Admin/Company')->show_company();
         $this->assign('company_list', $company);
         $this->checkRegisterType();
         $aType = I('get.type', '', 'op_t');
         $regSwitch = modC('REG_SWITCH', '', 'USERCONFIG');
         $regSwitch = explode(',', $regSwitch);
         $this->assign('regSwitch', $regSwitch);
         $this->assign('step', $aStep);
         $this->assign('type', $aType == '' ? 'username' : $aType);
         $this->display();
     }
 }
 /**
  * saveUsername  修改用户名
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function saveUsername()
 {
     $aUsername = $cUsername = I('post.username', '', 'op_t');
     if (!check_reg_type('username')) {
         $this->error(L('_ERROR_USERNAME_CONG_CLOSED_') . L('_EXCLAMATION_'));
     }
     //判断是否登录
     if (!is_login()) {
         $this->error(L('_ERROR_AFTER_LOGIN_') . L('_EXCLAMATION_'));
     }
     //判断提交的用户名是否为空
     if (empty($aUsername)) {
         $this->error(L('_USERNAME_NOT_EMPTY_') . L('_EXCLAMATION_'));
     }
     check_username($cUsername, $cEmail, $cMobile);
     if (empty($cUsername)) {
         !empty($cEmail) && ($str = L('_EMAIL_'));
         !empty($cMobile) && ($str = L('_PHONE_'));
         $this->error(L('_USERNAME_NOT_') . $str);
     }
     //验证用户名是否是字母和数字
     preg_match("/^[a-zA-Z0-9_]{" . modC('USERNAME_MIN_LENGTH', 2, 'USERCONFIG') . "," . modC('USERNAME_MAX_LENGTH', 32, 'USERCONFIG') . "}\$/", $aUsername, $match);
     if (!$match) {
         $this->error(L('_ERROR_USERNAME_LIMIT_1_') . modC('USERNAME_MIN_LENGTH', 2, 'USERCONFIG') . '-' . modC('USERNAME_MAX_LENGTH', 32, 'USERCONFIG') . L('_ERROR_USERNAME_LIMIT_2_') . L('_EXCLAMATION_'));
     }
     $uid = get_uid();
     $mUcenter = UCenterMember();
     //判断用户是否已设置用户名
     $username = $mUcenter->where(array('id' => $uid))->getField('username');
     if (empty($username)) {
         //判断修改的用户名是否已存在
         $id = $mUcenter->where(array('username' => $aUsername))->getField('id');
         if ($id) {
             $this->error(L('_ERROR_USERNAME_EXIST_') . L('_EXCLAMATION_'));
         } else {
             //修改用户名
             $rs = $mUcenter->where(array('id' => $uid))->save(array('username' => $aUsername));
             if (!$rs) {
                 $this->error(L('_FAIL_SETTINGS_') . L('_EXCLAMATION_'));
             }
             $this->success(L('_SUCCESS_SETTINGS_') . L('_EXCLAMATION_'), 'refresh');
         }
     }
     $this->error(L('_ERROR_USERNAME_CANNOT_MODIFY_') . L('_EXCLAMATION_'));
 }
            <?php 
    if (check_reg_type('email')) {
        ?>
            <a href="<?php 
        echo U('ucenter/member/register', array('type' => 'email'));
        ?>
"
               class="btn btn-block btn-primary btn-lg"><?php 
        echo L('_REGISTER_EMAIL_');
        ?>
</a>
            <?php 
    }
    ?>
            <?php 
    if (check_reg_type('mobile')) {
        ?>
            <a href="<?php 
        echo U('ucenter/member/register', array('type' => 'mobile'));
        ?>
"
               class="btn btn-block btn-success btn-lg"><?php 
        echo L('_REGISTER_PHONE_');
        ?>
</a>
            <?php 
    }
    ?>
        <?php 
}
?>
 /**
  * register  注册页面
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function register()
 {
     //获取参数
     $aUsername = $username = I('post.username', '', 'op_t');
     $aNickname = I('post.nickname', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRegVerify = I('post.reg_verify', 0, 'intval');
     $aRegType = I('post.reg_type', '', 'op_t');
     $aStep = I('get.step', 'start', 'op_t');
     $aRole = I('post.role', 0, 'intval');
     if (!modC('REG_SWITCH', '', 'USERCONFIG')) {
         $this->error('注册已关闭');
     }
     if (IS_POST) {
         //注册用户
         $return = check_action_limit('reg', 'ucenter_member', 1, 1, true);
         if ($return && !$return['state']) {
             $this->error($return['info'], $return['url']);
         }
         /* 检测验证码 */
         if (check_verify_open('reg')) {
             if (!check_verify($aVerify)) {
                 $this->error('验证码输入错误。');
             }
         }
         if (!$aRole) {
             $this->error('请选择角色。');
         }
         if ($aRegType == 'mobile' && modC('MOBILE_VERIFY_TYPE', 0, 'USERCONFIG') == 1 || modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 2 && $aRegType == 'email') {
             if (!D('Verify')->checkVerify($aUsername, $aRegType, $aRegVerify, 0)) {
                 $str = $aRegType == 'mobile' ? '手机' : '邮箱';
                 $this->error($str . '验证失败');
             }
         }
         $aUnType = 0;
         //获取注册类型
         check_username($aUsername, $email, $mobile, $aUnType);
         if ($aRegType == 'email' && $aUnType != 2) {
             $this->error('邮箱格式不正确');
         }
         if ($aRegType == 'mobile' && $aUnType != 3) {
             $this->error('手机格式不正确');
         }
         if ($aRegType == 'username' && $aUnType != 1) {
             $this->error('用户名格式不正确');
         }
         if (!check_reg_type($aUnType)) {
             $this->error('该类型未开放注册。');
         }
         /* 注册用户 */
         $uid = UCenterMember()->register($aUsername, $aNickname, $aPassword, $email, $mobile, $aUnType);
         if (0 < $uid) {
             //注册成功
             $this->initRoleUser($aRole, $uid);
             //初始化角色用户
             if (modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 1 && $aUnType == 2) {
                 set_user_status($uid, 3);
                 $verify = D('Verify')->addVerify($email, 'email', $uid);
                 $res = $this->sendActivateEmail($email, $verify, $uid);
                 //发送激活邮件
                 // $this->success('注册成功,请登录邮箱进行激活');
             }
             $uid = UCenterMember()->login($username, $aPassword, $aUnType);
             //通过账号密码取到uid
             D('Member')->login($uid, false, $aRole);
             //登陆
             $this->success('', U('Ucenter/member/step', array('step' => get_next_step('start'))));
         } else {
             //注册失败,显示错误信息
             $this->error($this->showRegError($uid));
         }
     } else {
         //显示注册表单
         if (is_login()) {
             $url = C('AFTER_LOGIN_JUMP_URL');
             redirect(U($url));
         }
         //角色
         $map['status'] = 1;
         $map['invite'] = 0;
         $roleList = D('Admin/Role')->selectByMap($map, 'sort asc', 'id,title');
         $this->assign('role_list', $roleList);
         //角色end
         $aType = I('get.type', '', 'op_t');
         $regSwitch = modC('REG_SWITCH', '', 'USERCONFIG');
         $regSwitch = explode(',', $regSwitch);
         $this->assign('regSwitch', $regSwitch);
         $this->assign('step', $aStep);
         $this->assign('type', $aType == '' ? 'username' : $aType);
         $this->display();
     }
 }
Esempio n. 14
0
 public function login()
 {
     $aUsername = $username = I('username', '', 'op_t');
     $aPassword = I('password', '', 'op_t');
     $aVerify = I('verify', '', 'op_t');
     $aRemember = I('remember', 0, 'intval');
     // 检测验证码
     if (check_verify_open('login')) {
         if (!check_verify($aVerify)) {
             $res['info'] = "验证码输入错误。";
             return $res;
         }
     }
     // 调用UC登录接口登录
     check_username($aUsername, $email, $mobile, $aUnType);
     if (!check_reg_type($aUnType)) {
         $res['info'] = "该类型未开放登录。";
     }
     $uid = UCenterMember()->login($username, $aPassword, $aUnType);
     if (0 < $uid) {
         //UC登录成功
         // 登录用户
         $Member = D('Member');
         $args['uid'] = $uid;
         $args = array('uid' => $uid, 'nickname' => $username);
         check_and_add($args);
         if ($Member->mobileLogin($uid, $aRemember) == 1) {
             //登录用户
             if (UC_SYNC && $uid != 1) {
                 //同步登录到UC
                 $ref = M('ucenter_user_link')->where(array('uid' => $uid))->find();
             }
             $extra = array();
             $extra['session_id'] = session_id();
             $extra['uid'] = $uid;
             C(api('Config/lists'));
             $extra['weibo_words_limit'] = C('WEIBO_WORDS_COUNT');
             $extra['version'] = C('APP_VERSION');
             $extra['self'] = query_user(array('uid', 'nickname', 'avatar128', 'avatar256'), is_login());
             $this->apiSuccess("登录成功", $extra);
         } else {
             $this->apiError('登陆成功');
         }
     } else {
         //登录失败
         switch ($uid) {
             case -1:
                 $res['info'] = '用户不存在或被禁用!';
                 break;
                 //系统级别禁用
             //系统级别禁用
             case -2:
                 $res['info'] = '密码错误!';
                 break;
             default:
                 $res['info'] = $uid;
                 break;
                 // 0-接口参数错误(调试阶段使用)
         }
     }
     dump(1111);
     $this->apiError($res['info']);
 }
Esempio n. 15
0
 public function doLogin()
 {
     $aUsername = $username = I('post.username', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRemember = I('post.remember', 0, 'intval');
     /* 检测验证码 */
     if (check_verify_open('login')) {
         if (!check_verify($aVerify)) {
             $res['info'] = L('_INFO_VERIFY_CODE_INPUT_ERROR_') . L('_PERIOD_');
             return $res;
         }
     }
     /* 调用UC登录接口登录 */
     check_username($aUsername, $email, $mobile, $aUnType);
     if (!check_reg_type($aUnType)) {
         $res['info'] = L('_INFO_TYPE_NOT_OPENED_') . L('_PERIOD_');
     }
     $uid = UCenterMember()->login($username, $aPassword, $aUnType);
     if (0 < $uid) {
         //UC登录成功
         /* 登录用户 */
         $Member = D('Member');
         $args['uid'] = $uid;
         $args = array('uid' => $uid, 'nickname' => $username);
         check_and_add($args);
         if ($Member->login($uid, $aRemember == 1)) {
             //登录用户
             //TODO:跳转到登录前页面
             $html_uc = '';
             if (UC_SYNC && $uid != 1) {
                 include_once './api/uc_client/client.php';
                 //同步登录到UC
                 $ref = M('ucenter_user_link')->where(array('uid' => $uid))->find();
                 $html_uc = uc_user_synlogin($ref['uc_uid']);
             }
             $oc_config = (include_once './OcApi/oc_config.php');
             if ($oc_config['SSO_SWITCH']) {
                 include_once './OcApi/OCenter/OCenter.php';
                 $OCApi = new \OCApi();
                 $html_oc = $OCApi->ocSynLogin($uid);
             }
             $html = empty($html_oc) ? $html_uc : $html_oc;
             $res['status'] = 1;
             $res['info'] = $html;
             //$this->success($html, get_nav_url(C('AFTER_LOGIN_JUMP_URL')));
         } else {
             $res['info'] = $Member->getError();
         }
     } else {
         //登录失败
         switch ($uid) {
             case -1:
                 $res['info'] = L('_INFO_USER_FORBIDDEN_');
                 break;
                 //系统级别禁用
             //系统级别禁用
             case -2:
                 $res['info'] = L('_INFO_PW_ERROR_') . L('_EXCLAMATION_');
                 break;
             default:
                 $res['info'] = $uid;
                 break;
                 // 0-接口参数错误(调试阶段使用)
         }
     }
     return $res;
 }
Esempio n. 16
0
 /**
  * register  注册页面
  * @author:xjw129xjt(肖骏涛) xjt@ourstu.com
  */
 public function register()
 {
     //获取参数
     $aUsername = $username = I('post.username', '', 'op_t');
     $aNickname = I('post.nickname', '', 'op_t');
     $aPassword = I('post.password', '', 'op_t');
     $aVerify = I('post.verify', '', 'op_t');
     $aRegVerify = I('post.reg_verify', 0, 'intval');
     $aRegType = I('post.reg_type', '', 'op_t');
     $aStep = I('get.step', 'start', 'op_t');
     $aRole = I('post.role', 0, 'intval');
     if (!modC('REG_SWITCH', '', 'USERCONFIG')) {
         $this->error('注册已关闭');
     }
     if (IS_POST) {
         //注册用户
         $return = check_action_limit('reg', 'ucenter_member', 1, 1, true);
         if ($return && !$return['state']) {
             $this->error($return['info'], $return['url']);
         }
         /* 检测验证码 */
         if (check_verify_open('reg')) {
             if (!check_verify($aVerify)) {
                 $this->error('验证码输入错误。');
             }
         }
         if (!$aRole) {
             $this->error('请选择角色。');
         }
         if ($aRegType == 'mobile' && modC('MOBILE_VERIFY_TYPE', 0, 'USERCONFIG') == 1 || modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 2 && $aRegType == 'email') {
             if (!D('Verify')->checkVerify($aUsername, $aRegType, $aRegVerify, 0)) {
                 $str = $aRegType == 'mobile' ? '手机' : '邮箱';
                 $this->error($str . '验证失败');
             }
         }
         $aUnType = 0;
         //获取注册类型
         check_username($aUsername, $email, $mobile, $aUnType);
         if ($aRegType == 'email' && $aUnType != 2) {
             $this->error('邮箱格式不正确');
         }
         if ($aRegType == 'mobile' && $aUnType != 3) {
             $this->error('手机格式不正确');
         }
         if ($aRegType == 'username' && $aUnType != 1) {
             $this->error('用户名格式不正确');
         }
         if (!check_reg_type($aUnType)) {
             $this->error('该类型未开放注册。');
         }
         /* 在第三方系统中注册用户*/
         //演示call_api方法调用第三方restful api 接口示例
         /* $res = call_api("http://api.demo.com/?m=conference&c=publisherapi&a=public_register&mobile=".$aMobile.
                 "&code=".$aRegVerify."&username="******"&password="******"&sex=%E7%94%B7&email=".UCenterMember()->rand_email());  //注册
             $res = json_decode($res[1],true);
            
             $token = $res['result']['token'];
             if($res['code'] == '200'){
                 $res['status'] = true;
                 $res['info'] = "reg ";
              
             }else{
                  $this->error($res['code']);
             }
             */
         $aCode = I('post.code', '', 'op_t');
         if (!$this->checkInviteCode($aCode)) {
             $this->error('非法邀请码!');
         }
         /* 注册用户 */
         $uid = UCenterMember()->register($aUsername, $aNickname, $aPassword, $email, $mobile, $aUnType);
         if (0 < $uid) {
             //注册成功
             $this->initInviteUser($uid, $aCode, $aRole);
             $this->initRoleUser($aRole, $uid);
             //初始化角色用户
             if (modC('EMAIL_VERIFY_TYPE', 0, 'USERCONFIG') == 1 && $aUnType == 2) {
                 set_user_status($uid, 3);
                 $verify = D('Verify')->addVerify($email, 'email', $uid);
                 $res = $this->sendActivateEmail($email, $verify, $uid);
                 //发送激活邮件
                 // $this->success('注册成功,请登录邮箱进行激活');
             }
             $uid = UCenterMember()->login($username, $aPassword, $aUnType);
             //通过账号密码取到uid
             D('Common/Member')->login($uid, false, $aRole);
             //登陆
             $this->success('', U('Ucenter/member/step', array('step' => get_next_step('start'))));
         } else {
             //注册失败,显示错误信息
             $this->error($this->showRegError($uid));
         }
     } else {
         //显示注册表单
         if (is_login()) {
             redirect(U(C('AFTER_LOGIN_JUMP_URL')));
         }
         $this->checkRegisterType();
         $aType = I('get.type', '', 'op_t');
         $regSwitch = modC('REG_SWITCH', '', 'USERCONFIG');
         $regSwitch = explode(',', $regSwitch);
         $this->assign('regSwitch', $regSwitch);
         $this->assign('step', $aStep);
         $this->assign('type', $aType == '' ? 'username' : $aType);
         $this->display();
     }
 }