redirect("Member/plogin"); } } $game_list=get_game_list(); $game_keys=array_rand($game_list,3); foreach ($game_keys as $val) { $v = $game_list[$val]; if(strpos(','.$v['display_site'].',',','.DISPLAY_SITE.',')!==false && $v['game_status']==1) $game_like[]=$v; } $this->assign('game_like',$game_like); $user_id=session('member_auth.mid'); $user=get_user_entity($user_id); $this->assign('user',$user); } public function users_index($value=''){ $this->profile(); // $this->display(); } /** *平台币 */ public function platform(){ $user=M('User','tab_'); $map['id']=session('member_auth.mid'); $data=$user->where($map)->find(); $this->assign('mid',$data); $this->assign('name',session('member_auth.account')); $this->display(); } /** *消费记录 */ public function record($p=0){ $page1 = intval($p); $page1 = $page1 ? $page1 : 1; //默认显示第一页数据 $game1 = M('spend','tab_'); $user = session("member_auth"); $map1['user_account']=$user['account'];//'wan001' $map1['pay_status']=1; $map1['pay_way']=0; $data1 = $game1->where($map1)->order('pay_time desc')->limit('0,10')->select(); $count1 = $game1->where($map1)->count(); //分页 if($count1 > 10){ $page1 = new \Think\Page($count1, 10); $page1->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%'); $this->assign('_page1', $page1->show()); } $this->assign("count1",$count1); $this->assign('agent_data', $data1); $this->assign('name',$user['account']); $model = array( 'm_name'=>'deposit', 'prefix'=>'tab_', 'field' =>true, 'map'=>array('pay_status'=>1,'user_account'=>$user['account']),//'wan001' 'order'=>'create_time desc', 'tmeplate_list'=>'record', ); parent::lists($model,$p); //$this->display(); } public function is_login(){ if (session('member_auth.nickname') == "Uc用户") { $data['status'] = 1; $data['account'] = session('member_auth.account'); return $this->ajaxReturn($data); } else { $mid = parent::is_login(); if ($mid > 0) { $data = parent::entity($mid); $data['status'] = 1; return $this->ajaxReturn($data); } else { return $this->ajaxReturn(array('status' => 0, 'msg' => '服务器故障')); } } } /** * 注销当前用户 * @return void */ public function logout($url='media.php'){ session('member_auth', null); session('member_auth_sign', null); session('user_auth', null); session('user_auth_sign', null); if ($url = 'plogin'){ $url = U('Member/plogin'); } $this->ajaxReturn(array('reurl'=>$url)); } function isChineseName($name){ if(preg_match("/^([\xe4-\xe9][\x80-\xbf]{2}){2,4}$/",$name)){ return true; }else { return false; } } function isCnameajax(){ if(isset($_POST['name'])){ if(!$this->isChineseName($_POST['name'])){ $this->ajaxReturn(array('status'=>0,'msg'=>'姓名输入不正确')); }else{ $this->ajaxReturn(array('status'=>1,'msg'=>'姓名输入正确')); } } } function isIdcardajax(){ if(isset($_POST['idcard'])){ $checkidcard = new Checkidcard(); $invidcard=$checkidcard->checkIdentity($_POST['idcard']); if(!$invidcard){ $this->ajaxReturn(array('status'=>0,'msg'=>'身份证号码填写不正确,如果有字母请小写')); }else{ $member = new MemberApi(); $flag = $member->checkIdcard($_POST['idcard']); if(!$flag){ $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-42))); }else{ $this->ajaxReturn(array('status'=>1,'msg'=>'身份证号码填写正确')); } } } } // 我的资料 lwx 2015-05-19 public function profile(){ $res = session("member_auth"); $res = isset($res['mid']) ? $res['mid'] : 0; if(IS_POST){ if(session('member_auth.nickname')=="Uc用户"){ $this->ajaxReturn(array('status'=>-1,'msg'=>'Uc用户暂不支持')); exit(); } if(C('tool_age.status') != 0){ $map = $_POST; if($_POST['nickname']==''){ $this->ajaxReturn(array('status'=>-1,'msg'=>'昵称不能为空')); } if(empty($_POST['real_name'])){ $this->ajaxReturn(array('status'=>0,'msg'=>'请输入姓名')); } if(!empty($_POST['real_name'])){ if(!$this->isChineseName($_POST['real_name'])){ $this->ajaxReturn(array('status'=>0,'msg'=>'姓名输入不正确')); } } if(empty($_POST['idcard'])){ $this->ajaxReturn(array('status'=>0,'msg'=>'请输入身份证')); } if(!empty($_POST['idcard'])){ $checkidcard = new \Think\Checkidcard(); $invidcard=$checkidcard->checkIdentity($_POST['idcard']); if(!$invidcard){ $this->ajaxReturn(array('status'=>-1,'msg'=>'身份证号码填写不正确')); } $cardd=M('User','tab_')->where(array('idcard'=>$_POST['idcard']))->find(); if($cardd){ $this->ajaxReturn(array('status'=>-1,'msg'=>'身份证号码已被使用')); } } if(!empty($_POST['real_name']) && !empty($_POST['idcard'])){ $re = age_verify($_POST['idcard'],$_POST['real_name']); switch ($re){ case -1: $this->ajaxReturn(array('status'=>-1,'msg'=>'连接接口失败')); break; case -2: $this->ajaxReturn(array('status'=>-1,'msg'=>'连接接口失败')); break; case 0: $this->ajaxReturn(array('status'=>-1,'msg'=>'用户数据不匹配')); break; case 1://成年 $map['age_status'] = 2; break; case 2://未成年 $map['age_status'] = 3; break; default: } } //$this->ajaxReturn(array('status'=>-1,'msg'=>'实名认证未开启')); }else{ if(!empty($_POST['real_name']) || !empty($_POST['idcard'])){ $this->ajaxReturn(array('status'=>-1,'msg'=>'实名认证未开启')); }else{ if($_POST['nickname']==''){ $this->ajaxReturn(array('status'=>-1,'msg'=>'昵称不能为空')); } //获取数据库里面的数据 如果不为空 则不进行实名认证 $user = M('User','tab_')->where(array('id'=>session('member_auth.mid')))->field('id,real_name,idcard,age_status')->find(); if (!empty($user['real_name']) && !empty($user['idcard'])){ unset($_POST['real_name']); unset($_POST['idcard']); $map = $_POST; }else{ unset($_POST['real_name']); unset($_POST['idcard']); $map = $_POST; $map['age_status'] = $user['age_status']; } } } $map['id'] = $res; $flag = M('User','tab_')->save($map); if ($flag!==false) { $data['msg'] = '修改成功'; $data['status']=1; }else{ $data['msg'] = '修改失败'; $data['status']=-3; } $this->ajaxReturn($data); } else { if(session('member_auth.nickname')=="Uc用户"){ $sqltype = 2; $ucuser = M('User','tab_',C('DB_CONFIG2'))->where(array('account'=>session('member_auth.account')))->find(); if($ucuser==''){ $sqltype = 3; $ucuser = M('User','tab_',C('DB_CONFIG3'))->where(array('account'=>session('member_auth.account')))->find(); } } $this->assign('uc_balance',$ucuser['balance']); $user = M('User','tab_')->where("id=$res")->find(); $phone = substr($user['phone'],2,-2); $user['phone'] = str_replace($phone,'*******',$user['phone']); $rl = mb_substr($user['real_name'],0,1,'utf-8'); $user['real_name']= str_replace($rl,'*',$user['real_name']); $idcard = substr($user['idcard'],3,-3); $user['idcard']=str_replace($idcard,'*********',$user['idcard']); $this->assign('up',$user); $this->assign('name',$user['account']); $this->display(); } } // 重置密码 lwx 2015-05-19 public function resetpwd() { if (IS_POST) { $user_id=session('user_auth.user_id'); $account=session('user_auth.account'); $opwd=$_POST['password_old']; $pwd=$_POST['password']; $pwd1=$_POST['password1']; /*判断Ucenter是否打开*/ if( C('UC_OPEN')==1 ){ $username = session('user_auth.account'); //修改uc密码 $ucresult = uc_user_edit($username,$opwd,$pwd); if($ucresult == -1) { $this->ajaxReturn(array('status'=>0,'msg'=>'原密码错误'));exit; } /** * 同步修改其他站点用户密码 */ $domain = C('UC_OTHER_WEB_URL'); if(!empty($domain)){ $url = "http://{$domain}/Api/user/editPassword?account={$username}&oldpsw={$opwd}&newpsw={$pwd}"; $aa = json_decode(file_get_contents($url),true); } } $member = new MemberApi(); if(session('member_auth.nickname')=="Uc用户"){ $this->ajaxReturn(array('status'=>-1,'msg'=>'Uc用户暂不支持')); exit(); } $flag = $member->checkPassword($account,$opwd); if(!$flag){ $this->ajaxReturn(array('status'=>0,'msg'=>'原密码错误'));exit; } $msg=$this->pwd($user_id,$pwd); $this->ajaxReturn($msg);exit; } else { $this->display(); } } public function ajaxPwdDetect(){ $user_id=session('user_auth.user_id'); $account=session('user_auth.account'); $opwd=$_POST['opwd']; $member = new MemberApi(); if(session('member_auth.nickname')=="Uc用户"){ $this->ajaxReturn(array('status'=>-1,'msg'=>'Uc用户暂不支持')); exit(); } $flag = $member->checkPassword($account,$opwd); if(!$flag){ $this->ajaxReturn(array('status'=>0,'msg'=>'原密码错误'));exit; }else{ $this->ajaxReturn(array('status'=>1,'msg'=>'原始密码正确'));exit; } } public function findpwd() { if (IS_POST) { $phone = $_POST['phone']; $this->checktelsvcode($phone,$_POST['pcode'],false); $verify = new \Think\Verify(); if(!$verify->check(I('ppceode'),5)){ $this->ajaxReturn(array('status'=>0,'msg'=>'验证码错误,请重新输入')); exit; } $user = M('User','tab_')->where(array("account"=>$_POST['account']))->find(); $this->ajaxReturn($this->pwd($user['id'],I('pwd'))); } else { $this->display(); } } // 修改密码 public function pwd($uid,$password) { $member = new MemberApi(); $result = $member->updatePassword($uid,$password); if ($result!==false) { $data['status']=1; $data['msg']='密码修改成功'; } else { $data['status']=0; $data['msg']='密码修改失败'; } return $data; } // 推广员推广注册通道 lwx 2016-05-18 public function preg() { $pid= I('pid'); if (empty($pid)) $pid = 0; $this->assign('pid',$pid); $this->display(); } public function plogin() { $cookie = json_decode(base64_decode(cookie('media_remember')),true); $this->assign('cookie',$cookie); $this->display(); } public function users_safe() { $user = session("member_auth"); if (IS_POST) { } else { $this->assign('name',$user['account']); $this->display(); } } // 绑定手机 lwx public function users_phone() { if (IS_POST) { if(session('member_auth.nickname')=="Uc用户"){ echo json_encode(array('status'=>'0','msg'=>'Uc用户暂不支持')); exit(); } $phone = $_POST['phone']; $session_name = $this->checktelsvcodenodestroy($phone,$_POST['vcode'],false); $user = session("member_auth"); $res = $user['mid']; if($_POST['jiebang']==1){ $phone=''; } M('User','tab_')->where("id=$res")->setField('phone',$phone); $flag = M('User','tab_')->where(array("id"=>$res,'phone'=> $phone) )->find(); if ($flag!==false) { $data['status']=1; if($_POST['jiebang']==1){ $data['msg']='手机解绑成功'; }else{ $data['msg']='手机绑定成功'; } } else { $data['status']=0; if($_POST['jiebang']==1){ $data['msg']='手机解绑失败'; }else{ $data['msg']='手机绑定失败'; } } !empty($session_name) && session($session_name,null); echo json_encode($data); } else { $res = session('member_auth.mid'); $ph = M('User','tab_')->field("phone")->where("id=$res")->find(); if (!empty($ph) && is_array($ph)) { $phone=array(); if($ph['phone']!=''){ $phone1=substr($ph['phone'],0,3); $phone2=substr($ph['phone'],-4); $phone['mi']=$phone1.'****'.$phone2; } $phone['ming']=$ph['phone']; $this->assign('phone',$phone); } $this->assign('name',session('member_auth.account')); $this->display(); } } public function changeph() { if (IS_POST) { $phone = $_POST['phone']; $session_name = $this->checktelsvcodenodestroy($phone,$_POST['vcode'],false); $res = session("member_auth.mid"); M('User','tab_')->where("id=$res")->setField('phone',''); $flag = M('User','tab_')->where("id=$res and phone = $phone")->find(); if (!$flag) { $data['status']=1; $data['msg']='手机解绑成功'; } else { $data['status']=0; $data['msg']='手机解绑失败'; } !empty($session_name) && session($session_name,null); echo json_encode($data); } else { echo json_encode(array('status'=>0,'msg'=>'服务器故障'));exit; } } // 绑定证件 lwx 2015-05-20 public function card() { $user = session('member_auth'); if (IS_POST) { $real_name =I('real_name'); $idcard = I('idcard'); if (empty($real_name) || empty($idcard)) { echo json_encode(array('status'=>0,'msg'=>'提交的数据有误')); } if(session('member_auth.nickname')=="Uc用户"){ echo json_encode(array('status'=>'0','msg'=>'Uc用户暂不支持')); exit(); } $data['id']=$user['mid']; $data['real_name']=$real_name; $data['idcard']=$idcard; $flag = M('User','tab_')->save($data); $data=''; if ($flag) { $data['status']=1; $data['msg']='认证成功'; } else { $data['status']=0; $data['msg']='认证失败'; } echo json_encode($data); } else { $user = M('User','tab_')->where("id=".$user['mid'])->find(); if (!empty($user['real_name']) && !empty($user['idcard'])) { $this->assign('istrue','1'); } $this->display(); } } public function sendvcode() { if (!IS_POST) { echo json_encode(array('status'=>0,'msg'=>'请按正确的流程'));exit; } if(session('member_auth.nickname')=="Uc用户"){ echo json_encode(array('status'=>0,'msg'=>'Uc用户暂不支持'));exit(); } $verify = new \Think\Verify(); if(!$verify->check(I('verify'),I('vid'))){ echo json_encode(array('status'=>2,'msg'=>'*验证码不正确')); exit; } $phone = I('phone'); $this->telsvcode($phone); } // 忘记密码 lwx 2015-05-19 public function forget() { $mid = parent::is_login(); if ($mid>0) { $this->redirect('Member/resetpwd/t/m/name/'.session('member_auth.account')); } if (IS_POST) { $account = I('account'); $user = M('User','tab_')->where("account='$account'")->find(); if (!empty($user) && is_array($user) && (1 == $user['lock_status'])) { $data['status']=1; $data['phone']=$user['phone']; } else { $data['status']=0; } echo json_encode($data); } else { $this->display(); } } public function login(){ if (empty($_POST['account'])) { $this->ajaxReturn(array('status' => -1001, 'code'=>-1001,'msg' => '账号不能为空')); } if (empty($_POST['password'])) { $this->ajaxReturn(array('status' => -1002, 'code'=>-1002,'msg' => '密码不能为空')); } if (empty($_POST['yzm'])&&isset($_POST['yzm'])) { $this->ajaxReturn(array('status' => -1003, 'code'=>-1003,'msg' => '验证码不能为空')); }else if(isset($_POST['yzm'])){ $verify = new \Think\Verify(); if(!$verify->check(I('yzm'))){ $this->ajaxReturn(array('status' => -1003, 'code'=>-10031, 'msg' => '验证码错误')); } } $data = array(); $member = new MemberApi(); /*是否开启Ucenter*/ if( C('UC_OPEN')==1 ){ $username = $_POST['account']; $password = $_POST['password']; //Ucenter登录 list($uc_uid, $uc_username, $uc_password, $uc_email) = uc_user_login($username,$password); if($uc_uid > 0) { //1.登录成功,验证在本地是否有此账号 $user_res = M('user','tab_')->where(['account'=>$uc_username])->find(); if(!empty($user_res)){//本地存在账号,验证密码直接登录 $res = $member->otpLogin($_POST['account'], $_POST['password']); if ($res > 0) { if($_POST['remuser']==1){ $cookie['account'] = $_POST['account']; $cookie['password'] = $_POST['password']; cookie('media_remember',base64_encode(json_encode($cookie))); }else{ cookie('media_remember',''); } parent::autoLogin($res); $this->ajaxReturn(array('status' => 1000, 'code'=>1000, 'msg' => '登录成功')); } else { switch ($res) { case -1000: $data = array('status' => -1000, 'code'=>-1000, 'msg' => '账号不存在'); break; case -1001: $data = array('status' => -1001, 'code'=>-1001, 'msg' => '账号被禁用,请联系客服'); break; case -10021: $data = array('status' => -1002, 'code'=>-10021,'msg' => '密码错误'); break; case -1004: $data = array('status' => -1004,'code'=>-1004); break; case -10041: $data = array('status' => -1004,'code'=>-10041, 'msg' => "动态密码错误"); break; default: $data = array('status' => -500,'code'=>-500, 'msg' => '未知错误'); break; } $this->ajaxReturn($data); } }else{//本地不存在账号,新增账号并登录 $resdata=array(); $resdata['account']=trim($username); $resdata['nickname']=trim($username); $resdata['password']=$password; $resdata['register_way']=3; $resdata['register_type']=1; $resdata['promote_id']=0; $resdata['promote_account']='UC用户'; $resdata['parent_id']=0; $resdata['parent_name']=''; $resdata['phone']=''; $resdata['real_name']=''; $resdata['idcard']=''; $res = $member->register($resdata); if($res > 0 ){ $res = $member->otpLogin($username,$password); if ($res > 0) { if($_POST['remuser']==1){ $cookie['account'] = $_POST['account']; $cookie['password'] = $_POST['password']; cookie('media_remember',base64_encode(json_encode($cookie))); }else{ cookie('media_remember',''); } parent::autoLogin($res); $this->ajaxReturn(array('status' => 1000, 'code'=>1000, 'msg' => '登录成功')); } return $this->ajaxReturn(array('status'=>1,'msg'=>'注册成功',"uid"=>$res)); }else{ $msg = $res == -3 ?"账号已存在":"身份证被占用"; return $this->ajaxReturn(array('status'=>0,'msg'=>$msg)); } } } elseif($uc_uid == -1) { //用户不存在,验证本地用户账号密码 $res = $member->otpLogin($_POST['account'], $_POST['password']); if ($res > 0) { if($_POST['remuser']==1){ $cookie['account'] = $_POST['account']; $cookie['password'] = $_POST['password']; cookie('media_remember',base64_encode(json_encode($cookie))); }else{ cookie('media_remember',''); } //同步ucenter注册 cus_uc_register($username,$password,$username.'@vlcms.com'); parent::autoLogin($res); $this->ajaxReturn(array('status' => 1000, 'code'=>1000, 'msg' => '登录成功')); } else { switch ($res) { case -1000: $data = array('status' => -1000, 'code'=>-1000, 'msg' => '账号不存在'); break; case -1001: $data = array('status' => -1001, 'code'=>-1001, 'msg' => '账号被禁用,请联系客服'); break; case -10021: $data = array('status' => -1002, 'code'=>-10021,'msg' => '密码错误'); break; case -1004: $data = array('status' => -1004,'code'=>-1004); break; case -10041: $data = array('status' => -1004,'code'=>-10041, 'msg' => "动态密码错误"); break; default: $data = array('status' => -500,'code'=>-500, 'msg' => '未知错误'); break; } $this->ajaxReturn($data); } } elseif($uc_uid == -2) { //密码错误 $this->ajaxReturn(array('status' => -1002, 'code'=>-10021,'msg' => '密码错误')); } else { //登录失败 } } $res = $member->otpLogin($_POST['account'], $_POST['password']); if ($res > 0) { if($_POST['remuser']==1){ $cookie['account'] = $_POST['account']; $cookie['password'] = $_POST['password']; cookie('media_remember',base64_encode(json_encode($cookie))); }else{ cookie('media_remember',''); } parent::autoLogin($res); $this->ajaxReturn(array('status' => 1000, 'code'=>1000, 'msg' => '登录成功')); } else { switch ($res) { case -1000: $data = array('status' => -1000, 'code'=>-1000, 'msg' => '账号不存在'); break; case -1001: $data = array('status' => -1001, 'code'=>-1001, 'msg' => '账号被禁用,请联系客服'); break; case -10021: $data = array('status' => -1002, 'code'=>-10021,'msg' => '密码错误'); break; case -1004: $data = array('status' => -1004,'code'=>-1004); break; case -10041: $data = array('status' => -1004,'code'=>-10041, 'msg' => "动态密码错误"); break; default: $data = array('status' => -500,'code'=>-500, 'msg' => '未知错误'); break; } $this->ajaxReturn($data); } } public function uc_login($account,$password){ $user['account']=$account; $user['password']=$password; $uc = new Ucservice(); $uidarray = $uc->uc_login_($user['account'], $user['password']); if (is_array($uidarray)) { $is_c = find_uc_account($user['account']); if (is_array($is_c)) { $map['id'] = $is_c['id']; M('user', 'tab_')->where($map)->setField('login_time', time()); $uidd = $is_c['id']; $nickname = $is_c['account']; } else { $uidd = $uidarray['uid']; $nickname = "Uc用户"; } $auth = array( 'mid' => $uidd, 'account' => $user['account'], 'nickname' => $nickname, 'balance' => empty($is_c['balance']) ? 0 : $is_c['balance'], 'last_login_time' => empty($is_c['login_time']) ? "*******" : $is_c['login_time'] ); session('member_auth', $auth); session('member_auth_sign', data_auth_sign($auth)); $this->ajaxReturn(array('status' => 1000, 'msg' => '登录成功')); }else{ if($uidarray == -1) { $this->ajaxReturn(array('status'=>-1,'msg'=>'用户不存在,或者被删除')); } elseif($uidarray == -2) { $this->ajaxReturn(array('status'=>-2,'msg'=>'密码错误')) ; } elseif($uidarray == -3) { $this->ajaxReturn(array('status'=>-3,'msg'=>'验证码错误')) ; } else { $this->ajaxReturn(array('status'=>-4,'msg'=>'未定义')) ; } } } /** *注册后完成登录 */ public function res_login(){ parent::autoLogin($_POST['uid']); $this->ajaxReturn(array("status"=>0,"uid"=>$_POST['uid'])); } public function register(){ if(IS_POST){ if(C("USER_ALLOW_REGISTER")==1){ if (C('PC_USER_ALLOW_REGISTER') == 1 ) { if(empty($_POST['uname']) || empty($_POST['upwd'])){ return $this->ajaxReturn(array('status'=>0,'msg'=>'账号或密码不能为空')); } else if(mb_strlen($_POST['uname'],'utf-8')>15||mb_strlen($_POST['uname'],'utf-8')<6){ return $this->ajaxReturn(array('status'=>0,'msg'=>'用户名长度在6~15个字符')); } /**是否开启ucenter**/ if(C('UC_OPEN')==1){ //Ucenter注册 //1.验证本平台是否存在账号 $is_user_info = M('user','tab_')->where(['account'=>$_POST['uname']])->find(); if(!empty($is_user_info)){ return $this->ajaxReturn(array('status'=>0,'msg'=>'用户名已存在')); } //2.验证其他平台是否存在账号 $domain = C('UC_OTHER_WEB_URL'); if(!empty($domain)){ $url = "http://{$domain}/Api/user/checkUserName?account={$_POST['uname']}"; $check_res = json_decode(file_get_contents($url),true); if($check_res['status']==0){ $this->ajaxReturn(array('status'=>0,'msg'=>'注册失败,用户名已存在'));exit; } } //3.ucenter注册账号 $ucresult = uc_user_checkname($_POST['uname']); if($ucresult == -1) { $this->ajaxReturn(array('status'=>0,'msg'=>'用户名不合法'));exit; } elseif($ucresult == -2) { $this->ajaxReturn(array('status'=>0,'msg'=>'包含要允许注册的词语'));exit; } elseif($ucresult == -3) { $this->ajaxReturn(array('status'=>0,'msg'=>'用户名已经存在'));exit; }else{ //同步ucenter注册 cus_uc_register($_POST['uname'],$_POST['upwd'],$_POST['uname'].'@vlcms.com'); } } $member = new MemberApi(); $pid = $_POST['pid']; if ($pid) { $promote = M("Promote","tab_")->where("id=$pid")->find(); if($promote){ $ppid=$promote['id']; $ppaccount=$promote['account']; $parent_id=$promote['parent_id']; $parent_name=$promote['parent_name']; }else{ $ppid=0; $ppaccount="官方渠道"; } }else{ $ppid=0; $ppaccount="官方渠道"; } $resdata=array(); $resdata['account']=trim($_POST['uname']); $resdata['nickname']=trim($_POST['uname']); $resdata['password']=$_POST['upwd']; $resdata['register_way']=3; $resdata['register_type']=1; $resdata['promote_id']=$ppid; $resdata['promote_account']=$ppaccount; $resdata['parent_id']=$parent_id; $resdata['parent_name']=$parent_name; $resdata['phone']=''; $resdata['real_name']=$_POST['rname']; $resdata['idcard']=$_POST['icard']; $verify = new \Think\Verify(); if(!$verify->check($_POST['r_quan'],666)){//vid 1000 注意 $this->ajaxReturn(array('status'=>0,'msg'=>'验证码不正确')); } //调用数据传递身份证和姓名验证是否是确定的 if (C('tool_age.status') == 1){ $re = age_verify($resdata['idcard'],$resdata['real_name']); if ($re == 0){ return $this->ajaxReturn(array('status'=>0,'msg'=>'审核失败!')); } if ($re == -1){ return $this->ajaxReturn(array('status'=>0,'msg'=>'短信数量已使用完!')); } if ($re == -2){ return $this->ajaxReturn(array('status'=>0,'msg'=>'连接错误,请检查配置!')); } if ($re == 1){ $resdata['age_status'] = 2; } if ($re == 2){ $resdata['age_status'] = 3; } }else{ $resdata['age_status'] = 2; } $res = $member->register($resdata); if($res > 0 ){ return $this->ajaxReturn(array('status'=>1,'msg'=>'注册成功',"uid"=>$res)); }else{ $msg = $res == -3 ?"账号已存在":"身份证被占用"; return $this->ajaxReturn(array('status'=>0,'msg'=>$msg)); } }else{ return $this->ajaxReturn(array('status'=>0,'msg'=>'PC官网未开放注册!!')); } }else{ return $this->ajaxReturn(array('status'=>0,'msg'=>'未开放注册!!')); } }else{ $age = C('PC_REAL_NAME_REGISTER'); $this->assign('age',$age); $this->display(); } } // 发送手机安全码 public function telsvcode($phone=null,$delay=10,$flag=true) { $result = R('Common/Sms/send_sms_code',array($phone,$delay,false)); if($result['code']==200) { $data['status'] = 1; $data['data'] = $result['data']; } else { $data['status'] = 0; } $data['msg'] = $result['msg']; echo json_encode($data); exit; } // 短信验证 public function checktelsvcode($phone,$vcode,$flag=true) { $result = R('Common/Sms/verify_sms_code',array($phone,$vcode,false)); if($result['code']==200) { $data['status'] = 1; if($flag) { echo json_encode($data);exit; } } else { $data['status'] = 0; $data['msg'] = $result['msg']; echo json_encode($data);exit; } } /** * 手机安全码验证 * @param $string $phone * @param $string $vcode * @param boolean $flag true 用于直接异步请求 false 用于方法调用 * @author 鹿文学 */ public function checktelsvcodenodestroy($phone,$vcode,$flag=true) { $result = R('Common/Sms/verify_sms_code',array($phone,$vcode,false,false)); if($result['code']==200) { $data['status'] = 1; if($flag) { echo json_encode($data);exit; } } else { $data['status'] = 0; $data['msg'] = $result['msg']; echo json_encode($data);exit; } return $result['session_name']?$result['session_name']:''; } // 验证码验证 public function checkverifycode() { $verify = new \Think\Verify(); if(!$verify->check($_POST['code'],1000)){//vid 1000 注意 $this->ajaxReturn(array('status'=>0,'msg'=>'*验证码不正确')); }else{ $this->ajaxReturn(array('status'=>1,'msg'=>'*验证码正确')); } } public function result($phone,$vcode,$password,$pid=0) { $member = new MemberApi(); $this->checktelsvcode($phone,$vcode,false); $flag = $member->checkUsername($phone); if (!$flag) { $data['msg'] = $this->getE(-11); $data['status'] = 0; $this->ajaxReturn($data,C('DEFAULT_AJAX_RETURN'));exit; } $uid = $member->register(trim($phone),trim($password)); if($uid>0) { M('User','tab_')->save(array("id"=>$uid,"phone"=>$phone)); if ($pid) { M('User','tab_')->where("id=$uid")->setField('promoteid',$pid); } $data['msg']="注册成功"; $data['status']=1; $data['url']=''; } else { $data['msg'] = '注册失败'; $data['status'] = 0; } $this->ajaxReturn($data,C('DEFAULT_AJAX_RETURN')); } public function users_gift(){ $data=M('gift_record','tab_') ->field('tab_gift_record.id,tab_giftbag.id as gift_id,tab_gift_record.novice,tab_game.icon,tab_gift_record.gift_name,tab_game.relation_game_name,tab_giftbag.start_time,tab_giftbag.end_time,tab_giftbag.desribe,tab_giftbag.digest') ->where(array('user_id'=>session('member_auth.mid'))) ->join('tab_game on tab_gift_record.game_id=tab_game.id') ->join('tab_giftbag on tab_gift_record.game_id=tab_giftbag.game_id') ->group('tab_gift_record.id') ->select(); foreach ($data as $key => $value){ $data[$key]['all_name'] = $data[$key]['relation_game_name'].'【'.mb_substr($data[$key]['relation_game_name'],0,2,'utf-8').'】'.$data[$key]['gift_name']; } $this->assign('list_data',$data); $this->display(); } public function users_db(){ $mid=session('user_auth.user_id'); $data=M('user_play','tab_') ->where(array('user_id'=>$mid)) ->select(); $this->assign('list_data',$data); $this->display(); } public function telregister() { $data = array(); if (IS_POST) { if(C("USER_ALLOW_REGISTER")==1){ if (C('PC_USER_ALLOW_REGISTER') == 1 ) { $member = new MemberApi(); $session_name = $this->checktelsvcodenodestroy($_POST['telnum'],$_POST['msg_code'],false); /**是否开启ucenter**/ if(C('UC_OPEN')==1){ //Ucenter注册 //1.验证本平台是否存在账号 $is_user_info = M('user','tab_')->where(['account'=>$_POST['telnum']])->find(); if(!empty($is_user_info)){ return $this->ajaxReturn(array('status'=>0,'msg'=>'用户名已存在')); } //2.验证其他平台是否存在账号 $domain = C('UC_OTHER_WEB_URL'); if(!empty($domain)){ $url = "http://{$domain}/Api/user/checkUserName?account={$_POST['account']}"; $check_res = json_decode(file_get_contents($url),true); if($check_res['status']==0){ $this->ajaxReturn(array('status'=>0,'msg'=>'注册失败,用户名已存在'));exit; } } //3.ucenter注册账号 $ucresult = uc_user_checkname($_POST['telnum']); if($ucresult == -1) { $this->ajaxReturn(array('status'=>0,'msg'=>'用户名不合法'));exit; } elseif($ucresult == -2) { $this->ajaxReturn(array('status'=>0,'msg'=>'包含要允许注册的词语'));exit; } elseif($ucresult == -3) { $this->ajaxReturn(array('status'=>0,'msg'=>'用户名已经存在'));exit; }else{ //同步ucenter注册 cus_uc_register($_POST['telnum'],$_POST['upwd'],$_POST['telnum'].'@vlcms.com'); } } $member = new MemberApi(); $pid = $_POST['pid']; if ($pid) { $promote = M("Promote","tab_")->where("id=$pid")->find(); if($promote){ $ppid=$promote['id']; $ppaccount=$promote['account']; $parent_id=$promote['parent_id']; $parent_name=$promote['parent_name']; }else{ $ppid=0; $ppaccount="官方渠道"; } }else{ $ppid=0; $ppaccount="官方渠道"; } $resdata=array(); $resdata['account']=trim($_POST['telnum']); $resdata['nickname']=trim($_POST['telnum']); $resdata['password']=$_POST['upwd']; $resdata['register_way']=3; $resdata['register_type']=2; $resdata['promote_id']=$ppid; $resdata['promote_account']=$ppaccount; $resdata['parent_id']=$parent_id; $resdata['parent_name']=$parent_name; $resdata['phone']=trim($_POST['telnum']); $resdata['real_name']=$_POST['rname']; $resdata['idcard']=$_POST['t_icard']; $res = $member->register($resdata); if($res > 0 ){ if ($pid) { $promote = M("Promote","tab_")->where("id=$pid")->find(); $data=array('id'=>$res,'promote_id'=>$pid,'promote_account'=>$promote['account']); $b = M('User','tab_')->save($data); if (!$b) { M('User','tab_')->save($data); } } return $this->ajaxReturn(array('status'=>1,'msg'=>'注册成功',"uid"=>$res)); } else{ $msg = $res == -1 ?"账号已存在":"注册失败"; return $this->ajaxReturn(array('status'=>0,'msg'=>$msg)); } $flag = $member->checkUsername($_POST['account']); if (!$flag) { $data['msg'] = $this->getE(-11); $data['status'] = 0; $this->ajaxReturn($data,C('DEFAULT_AJAX_RETURN'));exit; } $pid = $_POST['pid']; $paccount=M('Promote','tab_')->field('account')->where(array('id'=>$pid))->find(); $uid = $member->register(trim($_POST['account']),trim($_POST['password']),0,$pid,$paccount['account'],$_POST['account']); if($uid>0) { M('User','tab_')->save(array("id"=>$uid,"phone"=>$_POST['account'])); if ($pid) { M('User','tab_')->where("id=$uid")->setField('promoteid',$pid); } $data['msg']="注册成功"; $data['status']=1; $data['url']=''; //$this->ajaxReturn($data,C('DEFAULT_AJAX_RETURN')); } else { $data['msg'] = '注册失败'; $data['status'] = 0; } !empty($session_name) && session($session_name,null); $this->ajaxReturn($data,C('DEFAULT_AJAX_RETURN')); } else { return $this->ajaxReturn(array('status'=>0,'msg'=>'PC官网未开放注册!!')); } }else{ return $this->ajaxReturn(array('status'=>0,'msg'=>'未开放注册!!')); } } else { $this->redirect('Index/index'); } } public function reg_data(){ $member = new MemberApi(); $pid = $_POST['pid']; $res = $member->register(trim($_POST['account']),$_POST['password']); if($res > 0 ){ if ($pid) { $promote = M("Promote","tab_")->where("id=$pid")->find(); $data=array('id'=>$res,'promote_id'=>$pid,'promote_account'=>$promote['account']); $b = M('User','tab_')->save($data); if (!$b) { M('User','tab_')->save($data); } } return $this->ajaxReturn(array('status'=>1,'msg'=>'注册成功',"uid"=>$res)); } else{ $msg = $res == -1 ?"账号已存在":"注册失败"; return $this->ajaxReturn(array('status'=>0,'msg'=>$msg)); } } /** * 验证用户名 */ public function checkUser() { if (IS_POST) { $username = $_POST['username']; $len = mb_strlen($username); if ($len !== mb_strlen($username)) { return $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-22)),C('DEFAULT_AJAX_RETURN')); } if ($len<6 || $len >30) { return $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-22)),C('DEFAULT_AJAX_RETURN')); } // !preg_match("/^[a-zA-Z]+[0-9a-zA-Z_]{5,29}$/u",$username) if(!preg_match("/^[\w|&|\^|\.|\$|@|%|!|\(|\)|\*|\?|#|,|:|;|~|\\|\/|\[|\]|\-|\+|\||\{|\}|=|\u4E00-\u9FA5\uf900-\ufa2d]+$/",$username)) { return $this->ajaxReturn(array('status'=>-21,'msg'=>$this->getE(-21)),C('DEFAULT_AJAX_RETURN')); } $member = new MemberApi(); $flag = $member->checkUsername($username); if ($flag) { return $this->ajaxReturn(array('status'=>1),C('DEFAULT_AJAX_RETURN')); } else { return $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-3)),C('DEFAULT_AJAX_RETURN')); } } } /** * 验证手机号码 */ public function checkPhone() { if (IS_POST) { C(api('Config/lists')); $username = $_POST['username']; $len = strlen($username); if ($len !== mb_strlen($username)) { return $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-9)),C('DEFAULT_AJAX_RETURN')); } if ($len !== 11) { return $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-12)),C('DEFAULT_AJAX_RETURN')); } if(!preg_match("/^1[358][0-9]{9}$/u",$username)) { return $this->ajaxReturn(array('status'=>-21,'msg'=>$this->getE(-12)),C('DEFAULT_AJAX_RETURN')); } $member = new MemberApi(); $flag = $member->checkUsername($username); if ($flag) { return $this->ajaxReturn(array('status'=>1),C('DEFAULT_AJAX_RETURN')); } else { return $this->ajaxReturn(array('status'=>0,'msg'=>$this->getE(-11)),C('DEFAULT_AJAX_RETURN')); } } } protected function getE($num="") { switch($num) { case -1: $error = '用户名长度必须在6-30个字符以内!'; break; case -2: $error = '用户名被禁止注册!'; break; case -3: $error = '用户名被占用!'; break; case -4: $error = '密码长度不合法'; break; case -5: $error = '邮箱格式不正确!'; break; case -6: $error = '邮箱长度必须在1-32个字符之间!'; break; case -7: $error = '邮箱被禁止注册!'; break; case -8: $error = '邮箱被占用!'; break; case -9: $error = '手机号码格式不正确!'; break; case -10: $error = '手机号码被禁止注册!'; break; case -11: $error = '手机号被占用!'; break; case -12: $error = '手机号码必须由11位数字组成';break; case -20: $error = '请填写正确的姓名';break; case -21: $error = '用户名必须由汉字、字母、数字或下划线组成,以字母开头';break; case -22: $error = '用户名必须由6~15位汉字、数字、字母或下划线';break; case -31: $error = '密码错误';break; case -32: $error = '用户不存在或被禁用';break; case -41: $error = '身份证无效';break; case -42: $error = '身份证已使用';break; default: $error = '未知错误'; } return $error; } function checkfindpwd(){ $model=M('User','tab_'); if(isset($_POST['name'])){ if($_POST['name']==''){ $this->ajaxReturn(array('status'=>-1,'msg'=>'请输入用户名')); } $user=$model->where(array('account'=>$_POST['name']))->find(); if($user==''){ $this->ajaxReturn(array('status'=>-1,'msg'=>'用户名输入错误或不存在')); } if($_POST['type']==1&&$user){ $this->ajaxReturn(array('status'=>1,'msg'=>'用户名输入正确')); } } if(isset($_POST['phone'])){ if($_POST['name']==''){ $this->ajaxReturn(array('status'=>-1,'msg'=>'请输入用户名')); } if($_POST['phone']==''){ $this->ajaxReturn(array('status'=>-2,'msg'=>'请输入您的手机号码')); } $user=$model->where(array('account'=>$_POST['name'],'phone'=>$_POST['phone']))->find(); if($user==''){ $this->ajaxReturn(array('status'=>-2,'msg'=>'不是绑定手机号')); } if($_POST['type']==2&&$user){ $this->ajaxReturn(array('status'=>2,'msg'=>'绑定手机号输入正确')); } } if(isset($_POST['code'])){ if($_POST['name']==''){ $this->ajaxReturn(array('status'=>-1,'msg'=>'请输入用户名')); } if($_POST['phone']==''){ $this->ajaxReturn(array('status'=>-2,'msg'=>'请输入您的手机号码')); } if($_POST['code']==''){ $this->ajaxReturn(array('status'=>-3,'msg'=>'验证码不能为空')); } $verify = new \Think\Verify(); if(!$verify->check($_POST['code'],4)){ $this->ajaxReturn(array('status'=>-3,'msg'=>'验证码不正确')); } $this->ajaxReturn(array('status'=>3,'msg'=>'验证通过')); } } /** * 领取礼包 */ public function getGameGift() { $mid = parent::is_login();; if($mid==0){ echo json_encode(array('status'=>'0','msg'=>'请先登录')); exit(); } $list=M('record','tab_gift_'); $is=$list->where(array('user_id'=>$mid,'gift_id'=>$giftid)); if($is) { $map['user_id']=$mid; $map['gift_id']=$_POST['giftid']; $msg=$list->where($map)->find(); if($msg){ $data=$msg['novice']; echo json_encode(array('status'=>'1','msg'=>'no','data'=>$data)); } else{ $bag=M('giftbag','tab_'); $giftid= $_POST['giftid']; $ji=$bag->where(array("id"=>$giftid))->field("novice,end_time")->find(); if(empty($ji['novice'])){ echo json_encode(array('status'=>'1','msg'=>'noc')); } else{ if($ji['end_time']!=0&&$ji['end_time']-time()<0){ echo json_encode(array('status'=>'1','msg'=>'not')); }else{ $at=explode(",",$ji['novice']); $gameid=$bag->where(array("id"=>$giftid))->field('server_id,server_name,game_id')->find(); $add['game_id']=$gameid['game_id']; $add['game_name']=get_game_name($gameid['game_id']); $add['gift_id']=$_POST['giftid']; $add['gift_name']=$_POST['giftname']; $add['server_id'] =$gameid['server_id']; $add['server_name'] =$gameid['server_name']; $add['status']=1; $add['novice']=$at[0]; $add['user_id'] =$mid; $add['user_account']=get_user_account($mid); $add['create_time']=strtotime(date('Y-m-d h:i:s',time())); $list->add($add); $new=$at; if(in_array($new[0],$new)){ $sd=array_search($new[0],$new); unset($new[$sd]); } $act['novice']=implode(",", $new); $bag->where("id=".$giftid)->save($act); echo json_encode(array('status'=>'1','msg'=>'ok','data'=>$at[0])); } } } } } public function verify($vid=''){ $config = array( 'seKey' => 'ThinkPHP.CN', //验证码加密密钥 'fontSize' => 22, // 验证码字体大小(px) 'imageH' => 42, // 验证码图片高度 'imageW' => 150, // 验证码图片宽度 'length' => 4, // 验证码位数 'fontttf' => '4.ttf', // 验证码字体,不设置随机获取 ); ob_clean(); $verify = new \Think\Verify($config); $verify->codeSet = '0123456789'; $verify->entry($vid); } /** * 第三方登录 * */ public function thirdlogin($type = null){ empty($type) && $this->error('参数错误'); if($type=="weixin"){ $this->wechat_qrcode_login(); }elseif($type=="weibo"){ $appkey = C('THINK_SDK_WEIBO.APP_KEY'); $scope = C('THINK_SDK_WEIBO.SCOPE'); $callback = C('THINK_SDK_WEIBO.CALLBACK'); $ud['gid'] = $gid; $ud['pid'] = $pid; $callback = $callback.'&'.http_build_query($ud); //加载ThinkOauth类并实例化一个对象 $sns = ThinkOauth::getInstance($type); $wburl=$sns->login($appkey, $callback, $scope); redirect($wburl); }else{ //加载ThinkOauth类并实例化一个对象 $sns = ThinkOauth::getInstance($type); if(!empty($sns)){ //跳转到授权页面 redirect($sns->getRequestCodeURL()); } } } /** * 第三方微信扫码登录 * */ public function wechat_qrcode_login(){ if(empty(session("user_auth.user_id")) && !is_weixin()){ $appid = C('weixin_login.appid'); $appsecret = C('weixin_login.appsecret'); $auth = new WechatAuth($appid, $appsecret); $redirect_uri = "http://".$_SERVER['HTTP_HOST']."/media.php/Member/wechat_login"; redirect($auth->getQrconnectURL($redirect_uri,$state)); } } public function wechat_login(){ $appid = C('weixin_login.appid'); $appsecret = C('weixin_login.appsecret'); $auth = new WechatAuth($appid, $appsecret); $token = $auth->getAccessToken("code",$_GET['code']); $userInfo = $auth->getUserInfo($token['openid']); if(empty($userInfo['unionid'])||!isset($userInfo['unionid'])){ $this->error('前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制');exit; } $login_data['account'] = "WX_".sp_random_string(6); $login_data['nickname'] = $userInfo['nickname']; $login_data['head_img'] = $userInfo['headimgurl']; $login_data['openid'] = $userInfo['unionid']; $login_data['third_login_type'] = 2; $login_data['register_way']=3; $login_data['register_type']=3; $user = new MemberApi(); $result = $user->third_login($login_data); if($result == -1001){$this->error('账号已禁用,请联系客服处理');} if($result){ parent::autoLogin($result); redirect(U('Index/index')); } } /** * 回调函数 */ public function callback($type="", $code =""){ if(empty($type)||empty($code)){ $this->error('参数错误',U("index")); } //加载ThinkOauth类并实例化一个对象 if($type=='baidu'){ $token = $this->baidulogcall(); }else{ $sns = ThinkOauth::getInstance($type); } if($type!='weibo'&&$type!='baidu'){ $token = $sns->getAccessToken($code , $extend); }else{ $token['code'] = $code; } //获取当前登录用户信息 if(is_array($token)){ if ($type=='qq') { $user_info = A('Type','Event')->qq($token); $regway = 4; $data['head_img']=$user_info['headpic']; if(empty($user_info['openid'])){ $this->error('腾讯公司应用未打通 未将所有appid设置统一unionID 请到http://wiki.connect.qq.com/%E7%89%B9%E6%AE%8A%E9%97%AE%E9%A2%98-top10参考第一天');exit; } }elseif($type=='weibo'){ $user_info = $this->weibocallback(); $data['headpic'] = $user_info['avatar_hd']; $data['head_img']=$data['headpic']; $regway = 6; }elseif($type=='baidu'){ $user_info['openid'] = $token['uid']; $user_info['nickname'] = $token['uname']; $data['headpic']="http://tb.himg.baidu.com/sys/portrait/item/".$token['portrait']; $data['head_img'] = $data['headpic']; $_REQUEST['pid'] = $_COOKIE['bdlog_pid']; $_REQUEST['gid'] = $_COOKIE['bdlog_gid']; $regway = 5; } else { //微信 使不用 $user_info = $sns->getUserInfo($token['access_token'],$token['openid']); $user_info = json_decode($user_info,true); $regway = 3; $data['headpic']=$user_info['headimgurl']; $data['head_img']=$data['headpic']; } switch ($type) { case 'qq': $prefix="QQ_"; break; case 'weibo': $prefix="WB_"; break; case 'baidu': $prefix="BD_"; break; case 'wx': $prefix="WX_"; break; } $data['account'] = $prefix.sp_random_string(6);//$user_info['openid']; $data['nickname'] = $user_info['nick']?$user_info['nick']:$user_info['nickname']; $data['openid'] = $user_info['openid']; $data['register_type']=$regway; $data['register_way']=3; $user = new MemberApi(); $res = $user->third_login($data); if($res == -1001){$this->error('账号已禁用,请联系客服处理');} if($res){ $this->assign('forgetsuccessshow',"登录成功"); parent::autoLogin($res); redirect(U('Index/index')); }else { $this->error('失败'); } } } //qq登录 public function qq_login($data){ $map['openid'] = $data['openid']; $User = M('user','tab_'); $user = $User->where($map)->find(); if(empty($user)){ $data['balance'] = 0; $data['cumulative'] = 0; $data['lock_status'] = 0; $data['register_way'] = 1; $data['register_time'] = time(); if($User->add($data)){ return $this->qq_login($data); }else { return false; } }else{ return $this->login($user); } } }