getTxt(); $this->assign('txt',$str); //保存txt信息记录 $this->addDomain($str); //判断流程到哪一步 $cache = M('retail_domain')->where('pid = "'.$id.'"')->find(); $soft = $cache['soft']; switch ($soft){ case 0: $this->display('index'); break; case 1: //域名切割 $urlArr = explode('.',$cache['url']); $this->assign('domin',$urlArr[0]); //获取记录值 $cname = $this->getCname(); $this->assign('cname',$cname); $this->display('cname'); break; case 2: $this->assign('cache',$cache); $this->display('success'); break; } } public function getCname(){ //获取生成cname $user = session('admin_userinfo'); $id = $user['pid']; $txtFind = M('retail_domain')->where('pid = "'.$id.'"')->find(); if($txtFind['cname']){ $str = $txtFind['cname']; }else{ $str = $this->getText().".ocean666.top"; M('retail_domain')->where('pid = "'.$id.'"')->save(array('cname'=>$str)); } return $str; } public function addDomain($str){ //添加数据库记录信息 $user = session('admin_userinfo'); $id = $user['pid']; $count = M('retail_domain')->where('pid = "'.$id.'"')->count(); if($count){ M('retail_domain')->where('pid = "'.$id.'"')->save(array('txt'=>$str)); }else{ $data['txt'] = $str; $data['pid'] = $id; $re = M('retail_domain')->add($data); } } public function getTxt(){ $user = session('admin_userinfo'); $id = $user['pid']; $txtFind = M('retail_domain')->where('pid = "'.$id.'"')->find(); if($txtFind){ $str = $txtFind['txt']; }else{ $str = $this->getText(); } return $str; } public function checkText(){ /** * 验证Txt 记录是否正确 */ $site = I('post.site'); $re = dns_get_record($site, DNS_TXT); if(empty($re)){ $data['status'] = 0; $data['msg'] = "绑定失败,请检查TXT是否在主机绑定"; }else{ $accesskeyid = I('post.accesskeyid'); if($re[0]['txt']==$accesskeyid){ //修改domin地址 然后修改地址并且修改流程 $domin['url'] = $site; $domin['soft'] = 1; $user = session('admin_userinfo'); $map['pid'] = $user['pid']; $re = M('retail_domain')->where($map)->save($domin); if($re!==false){ $data['msg'] = "绑定成功,下一步请绑定CName"; $data['status'] = 1; }else{ $data['msg'] = "绑定失败,系统出现错误"; } }else{ $data['status'] = 0; $data['msg'] = "绑定失败,TXT参数不对应,请等待主机服务商识别"; } } $this->ajaxReturn($data); } /** * 检测cname是否绑定成功 */ public function checkCname(){ /** * 验证Txt 记录是否正确 */ $user = session('admin_userinfo'); $id = $user['pid']; $txtFind = M('retail_domain')->where('pid = "'.$id.'"')->find(); $re = dns_get_record($txtFind['url']); if(empty($re)){ $data['status'] = 0; $data['msg'] = "绑定失败,请检查CNAME是否在主机绑定,"; }else{ $cname = $txtFind['cname']; if(strtolower($re[0]['target'])==strtolower($cname)){ //修改domin地址 然后修改地址并且修改流程 $domin['url'] = $txtFind['url']; $domin['soft'] = 2; $map['pid'] = session('admin_userinfo')['pid']; $re = M('retail_domain')->where($map)->save($domin); if($re!==false){ $data['msg'] = "绑定成功"; $data['status'] = 1; }else{ $data['msg'] = "绑定失败,系统出现错误"; } }else{ $data['status'] = 0; $data['msg'] = "绑定失败,CNAME参数不对应,请等待主机服务商识别"; } } $this->ajaxReturn($data); } function getText(){ $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm"; $isok = true; $length = 10; $i = 0; while($isok){ str_shuffle($str); $name=substr(str_shuffle($str),26,$length); $one = M('retail_domain')->where(array('txt'=>$name))->find(); if(!$one){ $isok = false; }else{ if($i>=100){ $length = $length +1; $i =0; }else{ $i++; } } } return $name; } }