168 行
5.5 KiB
PHP
可执行文件
168 行
5.5 KiB
PHP
可执行文件
<?php
|
|
namespace Admin\Controller;
|
|
use Think\Controller;
|
|
|
|
class SiteController extends BaseController
|
|
{
|
|
/**
|
|
* 授权网站 站点
|
|
*/
|
|
public function index()
|
|
{
|
|
|
|
$user = session('admin_userinfo');
|
|
$id = $user['pid'];
|
|
//获取TXT文本记录
|
|
$str = $this->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;
|
|
}
|
|
} |