文件
mashangyoujiu/Application/Admin/Controller/SiteController.class.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;
}
}