Exemplo n.º 1
0
 /**
  * 设置验证key
  */
 public static function setKey()
 {
     $checkcode = mt_rand(1000, 9999);
     $thisdata = date("YmdH");
     $checkkey = PublicLibrary::password_encode($thisdata, $checkcode);
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     $session->set('checkkey', $checkkey);
     //$session->close();
     //$session->setTimeout('1800');//有效期30分钟
     return $checkkey;
     //<input type="hidden" name="checkkey" value="<{$checkkey}>">
 }
Exemplo n.º 2
0
 /**
  * 好产品投票接口
  */
 public function actionGoodPoll()
 {
     $params = Yii::$app->request->post();
     $tmp = $params['method'];
     $params = array_map('intval', $params);
     $params['method'] = $tmp;
     if (!Yii::$app->util->isAjax()) {
         echo Yii::$app->util->formatResEncode('1000', '不是ajax请求');
         return;
     }
     //验证参数
     if (!isset($params['mobile']) || !Yii::$app->util->checkMobileType($params['mobile']) || !isset($params['authcode']) || !$params['authcode'] || !isset($params['poll_id']) || !$params['poll_id'] || !isset($params['method']) || !$params['method']) {
         echo Yii::$app->util->formatResEncode('1001', '参数错误');
         return;
     }
     $mMember = new Member();
     if ($params['method'] == 'pwd') {
         $userone = $mMember->getByUserName($params['mobile']);
         if (!$userone) {
             echo Yii::$app->util->formatResEncode('1002', '不存在该用户');
             return;
         } else {
             $passmd = PublicLibrary::password_encode($params['authcode'], $userone['random']);
             if ($passmd != $userone['password']) {
                 echo Yii::$app->util->formatResEncode('1003', '密码错误');
                 return;
             }
         }
     } else {
         if ($params['method'] == 'authcode') {
             //获取验证码
             $session = Yii::$app->session;
             $session->isActive ? '' : $session->open();
             $authcode = $session->get('authcode');
             $mobile = $session->get('mobile');
             $session->close();
             //验证手机验证码
             if (!isset($params['authcode'])) {
                 echo Yii::$app->util->formatResEncode('1004', '验证码错误');
                 return;
             } else {
                 if ($authcode != $params['authcode']) {
                     echo Yii::$app->util->formatResEncode('1004', '验证码错误');
                     return;
                 } else {
                     if ($mobile != $params['mobile']) {
                         echo Yii::$app->util->formatResEncode('1004', '验证码错误');
                         return;
                     }
                 }
             }
         } else {
             echo Yii::$app->util->formatResEncode('1001', '参数错误');
             return;
         }
     }
     $exist = $mMember->isRegistByConditons(['mobile' => $params['mobile']]);
     //新用户注册
     if (!$exist) {
         if ($mMember->regist(['mobile' => $params['mobile']])) {
             //发送注册用户密码提示信息
             Yii::$app->sms->send($params['mobile'], '欢迎注册idaiyan用户,你的首次用户密码为手机号后六位');
         }
     } else {
         $uId = $exist['uid'];
         //获取rel_id
         $mActivityProduct = new ActivityProduct();
         $conditions = ['user_id' => $uId, 'acti_id' => ActivityBase::GOOD_PRODUCT];
         $one = $mActivityProduct->getOenByConditions($conditions);
         $relId = isset($one) && $one ? $one['id'] : 0;
         if ($relId) {
             //取分享人数据
             $conditions = ['poll_id' => $params['poll_id'], 'owner_id' => $relId];
             $mPollOption = new PollOption();
             $row = $mPollOption->TopNum($conditions);
             if ($row) {
                 $data = ['img' => $row[0]['act']['product']['album'], 'name' => $row[0]['act']['product']['name'], 'poll_votes' => $row[0]['option_votes'], 'option_id' => $row[0]['option_id']];
             }
         }
     }
     //登陆session
     if (!$exist) {
         $exist = $mMember->isRegistByConditons(['mobile' => $params['mobile']]);
     }
     $user = ['uid' => $exist['uid'], 'mobile' => $exist['mobile']];
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     $authcode = $session->set('user', $user);
     $session->close();
     echo Yii::$app->util->formatResEncode('0', '成功', ['data' => isset($data) ? $data : '']);
     return;
 }
Exemplo n.º 3
0
 /**
  * 密码修改
  * @param str $oldpassword 旧密码
  * @param str $newpassword 新密码
  * @param str $newpassword2 重复新密码
  *
  * @return
  */
 public function actionEditPw()
 {
     //判断登陆
     $user = PublicLibrary::is_login();
     if ($user && PublicLibrary::is_ajax()) {
         $uid = $user['uid'];
     } else {
         echo PublicLibrary::format_res_encode('1001', 'login error');
         exit;
     }
     if (Yii::$app->request->isPost) {
         $form = Yii::$app->request->post();
         $date = array_map('trim', $form);
         $date = array_map('strip_tags', $date);
         $oldPassword = isset($date['oldpassword']) ? $date['oldpassword'] : '';
         $newPassword = isset($date['newpassword']) ? $date['newpassword'] : '';
         $newPassword2 = isset($date['newpassword2']) ? $date['newpassword2'] : '';
         if (strlen($newPassword) > self::PASSWORD_MINLENTH && $newPassword == $newPassword2 && strlen($newPassword) < self::PASSWORD_MAXLENTH) {
             //查询当前用户信息
             $memberModel = new Member();
             $member = $memberModel->getByUid($user['uid']);
             $oldpw = PublicLibrary::password_encode($oldPassword, $member['random']);
             $newpw = PublicLibrary::password_encode($newPassword, $member['random']);
             if ($oldpw == $newpw) {
                 echo PublicLibrary::format_res_encode('1002', '新旧密码不能相同!');
                 exit;
             }
             if ($oldpw == $member['password']) {
                 $mMember = Member::findOne($uid);
                 $mMember->password = $newpw;
                 if ($mMember->save()) {
                     $session = Yii::$app->session;
                     $session->remove('user');
                     echo PublicLibrary::format_res_encode('0', '密码修改成功,请重新登录!');
                     exit;
                 } else {
                     echo PublicLibrary::format_res_encode('1003', 'save error');
                     exit;
                 }
             } else {
                 echo PublicLibrary::format_res_encode('1004', 'old password error');
                 exit;
                 //echo "<script>alert('旧密码不正确!'),window.location.href='/ucenter/edit-pw';</script>";
                 //echo "旧密码不正确!";
             }
         } else {
             echo PublicLibrary::format_res_encode('1005', 'param error');
             exit;
             //echo "<script>alert('新密码格式或位数不正确!'),window.location.href='/ucenter/edit-pw';</script>";
             //echo "两次密码不同!";
         }
     } else {
         echo PublicLibrary::format_res_encode('1006', 'request error');
         exit;
     }
 }
Exemplo n.º 4
0
 public function actionCheckcode()
 {
     $params = Yii::$app->request->post();
     // 联调时需要改成post
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     // print_r($params);
     $output = array();
     if ($params) {
         $mobile = intval($params['mobile']);
         $authcode = isset($params['authcode']) ? strip_tags($params['authcode']) : '';
         $member_model = new Member();
         $userone = $member_model->getByUserName($mobile);
         //通过手机号查询用户信息
         if (!empty($userone)) {
             // echo $authcode;
             // $password = password_encode($authcode,$userone['random']);
             $passmd = PublicLibrary::password_encode($authcode, $userone['random']);
             // echo $passmd;exit;
             if (!empty($_SESSION['authcode'])) {
                 if ($authcode == $_SESSION['authcode'] || $userone['password'] == $passmd) {
                     //设置登录状态
                     $_SESSION['user']['uid'] = $userone['uid'];
                     $_SESSION['user']['mobile'] = $userone['mobile'];
                     $_SESSION['user']['truename'] = $userone['truename'];
                     $_SESSION['user']['admin'] = 0;
                     //普通用户登录
                     //设置登陆日志
                     $MemberLog_model = new MemberLog();
                     $MemberLog_model->saveLog(array('uid' => $userone['uid']));
                     $output['status'] = 1;
                     $output['res'] = $userone;
                     $output['info'] = '验证通过,登录成功!';
                 } else {
                     $output['status'] = 2;
                     $output['res'] = '';
                     $output['info'] = '验证码或密码错误!';
                 }
             } else {
                 // mimacuowu***
                 if ($userone['password'] == $passmd) {
                     //设置登录状态
                     $_SESSION['user']['uid'] = $userone['uid'];
                     $_SESSION['user']['mobile'] = $userone['mobile'];
                     $_SESSION['user']['truename'] = $userone['truename'];
                     $_SESSION['user']['admin'] = 0;
                     //普通用户登录
                     //设置登陆日志
                     $MemberLog_model = new MemberLog();
                     $MemberLog_model->saveLog(array('uid' => $userone['uid']));
                     $output['status'] = 1;
                     $output['res'] = $userone;
                     $output['info'] = '验证通过,登录成功!';
                 } else {
                     $output['status'] = 2;
                     $output['res'] = '';
                     $output['info'] = '密码错误!';
                 }
             }
         } else {
             if (!empty($_SESSION['authcode'])) {
                 if ($authcode == $_SESSION['authcode']) {
                     $_SESSION['user']['mobile'] = $mobile;
                     $output['status'] = 1;
                     $output['res'] = '';
                     $output['info'] = '验证通过,登录成功!';
                 } else {
                     $output['status'] = 3;
                     $output['res'] = '';
                     $output['info'] = '验证码不正确!';
                 }
             } else {
                 $output['status'] = 3;
                 $output['res'] = '';
                 $output['info'] = '验证码不正确1!';
             }
         }
     } else {
         $output['status'] = 3;
         $output['res'] = '';
         $output['info'] = '签名验证出错!';
     }
     $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['res']);
     // var_dump($output);
     echo $output;
 }
Exemplo n.º 5
0
 /**
  * 找回密码 第二步
  * 如果是手机 跳转进入发短信验证码界面
  * 如果是邮箱,发邮件进入邮箱提醒页面
  * @param checkkey   str    密钥
  * @param password  str     密码
  * @param repassword  str   重复密码
  * @param sendcode   str    验证码
  * @param username  str     用户名
  *
  * @return json or 跳转
  */
 public function actionSetPassword()
 {
     //判断登陆,成功跳转到用户中心,
     PublicLibrary::is_login() ? $this->redirect(['/']) : '';
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     if (Yii::$app->request->isPost) {
         if (PublicLibrary::is_ajax()) {
             $setarr = Yii::$app->request->post();
             if (!PublicLibrary::contestKey($setarr['checkkey']) && !empty($setarr['checkkey'])) {
                 //echo "<script>alert('请正确提交!'),window.location.href='index.php?r=user/find-password';</script>";
                 echo PublicLibrary::format_res_encode('1001', '请正确提交!', '');
                 exit;
             }
             if ($setarr['from'] == 'mobile') {
                 if (empty($setarr['sendcode']) || $session->get('sendcode') != $setarr['sendcode']) {
                     //echo "<script>alert('验证码不正确!'),window.location.href='index.php?r=user/find-password';</script>";
                     echo PublicLibrary::format_res_encode('1002', '验证码不正确!', '');
                     exit;
                 }
             }
             if ($setarr['password'] != $setarr['repassword'] && !empty($setarr['repassword'])) {
                 //echo "<script>alert('两次密码不同!'),window.location.href='index.php?r=user/find-password';</script>";
                 echo PublicLibrary::format_res_encode('1003', '两次密码不同!', '');
                 exit;
             }
             if (strlen($setarr['password']) <= self::PASSWORD_MAXLENTH && strlen($setarr['password']) > self::PASSWORD_MINLENTH) {
                 echo PublicLibrary::format_res_encode('1004', '密码长度不能小于六位!', '');
                 exit;
             }
         } else {
             $setarr = Yii::$app->request->post();
             if (!PublicLibrary::contestKey($setarr['checkkey']) && !empty($setarr['checkkey'])) {
                 echo "<script>alert('请正确提交!'),window.location.href='" . Url::toRoute('user/find-password') . "';</script>";
                 exit;
             }
             if ($setarr['from'] == 'mobile') {
                 if (empty($setarr['sendcode']) || $session->get('sendcode') != $setarr['sendcode']) {
                     echo "<script>alert('验证码不正确!'),window.location.href='" . Url::toRoute('user/find-password') . "';</script>";
                     exit;
                 }
             }
             if ($setarr['password'] != $setarr['repassword'] && !empty($setarr['repassword'])) {
                 echo "<script>alert('两次密码不同!'),window.location.href='" . Url::toRoute('user/find-password') . "';</script>";
                 exit;
             }
             if (strlen($setarr['password']) <= self::PASSWORD_MAXLENTH && strlen($setarr['password']) > self::PASSWORD_MINLENTH) {
                 echo "<script>alert('密码长度不能小于六位!'),window.location.href='" . Url::toRoute('user/find-password') . "';</script>";
                 exit;
             }
         }
         $Member_model = new Member();
         $userone = $Member_model->getByUserName($setarr['username']);
         if (empty($userone)) {
             echo "<script>alert('该用户不存在!'),window.location.href='" . Url::toRoute('user/find-password') . "';</script>";
             exit;
         }
         $newpass = PublicLibrary::password_encode($setarr['password'], $userone['random']);
         $Member = Member::findOne($userone['uid']);
         $Member->password = $newpass;
         $return = $Member->save();
         if ($return) {
             // echo "<script>alert('找回密码成功!'),window.location.href='index.php?r=user/login';</script>";
             // exit;
             //echo "string";
             if (PublicLibrary::is_ajax()) {
                 $this->layout = false;
                 $data['html'] = $this->render('ajax_fpwsuccess', ['username' => $setarr['username']]);
                 echo PublicLibrary::format_res_encode('0', '密码修改成功', $data);
                 //echo $this->render('ajax_fpwsuccess',['username' => $setarr['username']]);
                 exit;
             } else {
                 return $this->render('fpw_success', ['username' => $setarr['username']]);
                 exit;
             }
             //$this->redirect(['login','msg'=>'找回密码成功!']);//跳转
         } else {
             if (PublicLibrary::is_ajax()) {
                 echo PublicLibrary::format_res_encode_check('1', '找回密码失败', '');
                 exit;
             } else {
                 echo "<script>alert('找回密码失败!'),window.location.href='" . Url::toRoute('user/find-password') . "';</script>";
                 exit;
             }
             //$this->redirect(['find-password','msg'=>'数据更新失败!']);//跳转
         }
     }
 }
Exemplo n.º 6
0
 public function actionCheckcode()
 {
     $params = Yii::$app->request->post();
     // 联调时需要改成post
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     // $_SESSION['authcode'] = '123456';
     // print_r($params);
     $output = array();
     if ($params) {
         $mobile = intval($params['mobile']);
         $rel_id = isset($params['rel_id']) ? intval($params['rel_id']) : '';
         $sid = isset($params['sid']) ? intval($params['sid']) : '';
         $truename = isset($params['truename']) ? strip_tags($params['truename']) : '';
         // if ($rel_id == 0) {
         //     $output['status'] = 4;
         //     $output['res'] = '';
         //     $output['info'] = '参数错误!';
         //     $output['url'] = '/baiying/index';
         //     $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['url']);
         //     // var_dump($output);
         //     echo $output;
         //     exit;
         // }
         $authcode = isset($params['authcode']) ? strip_tags($params['authcode']) : '';
         $member_model = new Member();
         $userone = $member_model->getByUserName($mobile);
         //通过手机号查询用户信息
         if (!empty($userone)) {
             // echo $authcode;
             // $password = password_encode($authcode,$userone['random']);
             $passmd = PublicLibrary::password_encode($authcode, $userone['random']);
             // echo $passmd;exit;
             if (!empty($_SESSION['authcode'])) {
                 if ($authcode == $_SESSION['authcode'] || $userone['password'] == $passmd) {
                     //设置登录状态
                     $_SESSION['user']['uid'] = $userone['uid'];
                     $_SESSION['user']['mobile'] = $userone['mobile'];
                     $_SESSION['user']['truename'] = $userone['truename'];
                     $_SESSION['user']['admin'] = 0;
                     //普通用户登录
                     //设置登陆日志
                     $MemberLog_model = new MemberLog();
                     $MemberLog_model->saveLog(array('uid' => $userone['uid']));
                     if (!$rel_id) {
                         $output['status'] = 11;
                         $output['res'] = $userone;
                         $output['info'] = '用户正在观看该商品!';
                         $output['url'] = '/baiying/gamestar?sid=' . $sid;
                     } else {
                         $output['status'] = 10;
                         $output['res'] = $userone;
                         $output['info'] = '用户随便打开的页面!';
                         $output['url'] = '/baiying/productdetial?rel_id=' . $rel_id;
                     }
                 } else {
                     $output['status'] = 2;
                     $output['res'] = '';
                     $output['info'] = '验证码或密码错误!';
                     $output['url'] = '';
                 }
             } else {
                 // mimacuowu***
                 if ($userone['password'] == $passmd) {
                     //设置登录状态
                     $_SESSION['user']['uid'] = $userone['uid'];
                     $_SESSION['user']['mobile'] = $userone['mobile'];
                     $_SESSION['user']['truename'] = $userone['truename'];
                     $_SESSION['user']['admin'] = 0;
                     //普通用户登录
                     //设置登陆日志
                     $MemberLog_model = new MemberLog();
                     $MemberLog_model->saveLog(array('uid' => $userone['uid']));
                     if (!$rel_id) {
                         $output['status'] = 11;
                         $output['res'] = $userone;
                         $output['info'] = '用户正在观看该商品!';
                         $output['url'] = '/baiying/gamestar?sid=' . $sid;
                     } else {
                         $output['status'] = 10;
                         $output['res'] = $userone;
                         $output['info'] = '用户随便打开的页面!';
                         $output['url'] = '/baiying/productdetial?rel_id=' . $rel_id;
                     }
                 } else {
                     $output['status'] = 2;
                     $output['res'] = '';
                     $output['info'] = '密码错误!';
                     $output['url'] = '';
                 }
             }
         } else {
             if (!empty($_SESSION['authcode'])) {
                 if ($authcode == $_SESSION['authcode']) {
                     $_SESSION['user']['mobile'] = $mobile;
                     $output['status'] = 1;
                     $output['res'] = '';
                     $output['info'] = '验证通过,登录成功!';
                     $output['url'] = '/baiying/order?rel_id=' . $rel_id;
                     //注册
                     $usercontent = array("mobile" => $mobile, "truename" => $truename, "address" => '', "comefrom" => '一呼百应');
                     $member = new Member();
                     $res = $member->registration($usercontent);
                     if ($res['userid']) {
                         //设置登录状态
                         $_SESSION['user']['uid'] = $res['userid'];
                         $_SESSION['user']['mobile'] = $mobile;
                         $_SESSION['user']['truename'] = $truename;
                         $_SESSION['user']['admin'] = 0;
                         //普通用户登录
                         // $sms_model = new Sms();
                         // $sms_model->mobile = $mobile;
                         // $sms_model->content = '您的密码是'.$res['password'].',您可以使用手机号:'.$mobile.'登录i代言官网,如非本人操作请及时联系客服人员。【i代言】';
                         // $sms_model->from = 'findpassword';  //调用来源
                         // $return = $sms_model->SoapSend();
                         $sms = Yii::$app->dcSMS;
                         $userID = $res['userid'];
                         $data = ['uid' => $userID, 'mobile' => $mobile, 'business' => 'H_AUTO_REG', 'tplno' => 1, 'password' => $res['password'], 'mobile' => $mobile];
                         $resp = $sms->send($data);
                     }
                 } else {
                     $output['status'] = 3;
                     $output['res'] = '';
                     $output['info'] = '验证码不正确!';
                     $output['url'] = '';
                 }
             } else {
                 $output['status'] = 3;
                 $output['res'] = '';
                 $output['info'] = '验证码不正确1!';
                 $output['url'] = '';
             }
         }
     } else {
         $output['status'] = 3;
         $output['res'] = '';
         $output['info'] = '签名验证出错!';
         $output['url'] = '';
     }
     $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['url']);
     // var_dump($output);
     echo $output;
 }
Exemplo n.º 7
0
 /**
  * goodProduct  注册
  * @param  array $options i_member中的某些键值对
  * [
  *     'mobile' => '手机号,为必填字段',
  *     'truename' => '真名',
  *     'email' => '邮件地址',
  *      ~~~
  * ]
  * @return int|boolean     成功反回对应uid 失败返回 FALSE
  * 
  */
 public function regist($options = [])
 {
     //手机号必填
     if (!isset($options['mobile']) || !PublicLibrary::checkMobileType($options['mobile'])) {
         return FALSE;
     }
     $now = time();
     $user = self::findOne(['mobile' => $options['mobile']]);
     if ($user) {
         return $user->uid;
     } else {
         //注册新用户
         $options['random'] = mt_rand(1000, 9999);
         $options['password'] = PublicLibrary::password_encode(substr($options['mobile'], 5, 6), $options['random']);
         $options['create_at'] = $now;
         $options['update_at'] = $now;
         foreach ($options as $key => $value) {
             $this[$key] = $value;
         }
         return $this->save() ? $this->uid : FALSE;
     }
 }