/** * 设置验证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}>"> }
/** * 好产品投票接口 */ 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; }
/** * 密码修改 * @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; } }
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; }
/** * 找回密码 第二步 * 如果是手机 跳转进入发短信验证码界面 * 如果是邮箱,发邮件进入邮箱提醒页面 * @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'=>'数据更新失败!']);//跳转 } } }
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; }
/** * 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; } }