91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国


待發(fā)短信

在線客服
產(chǎn)品支持 短信寶客服
合作渠道 渠道合作
服務(wù)咨詢

4001-021-502

工作時間

9:00-21:00

極致CMS系統(tǒng)新增短信寶短信接口

極致CMS是開源免費(fèi)的PHPCMS網(wǎng)站內(nèi)容管理系統(tǒng),無商業(yè)授權(quán),簡單易用,提供豐富的插件,實(shí)現(xiàn)零基礎(chǔ)搭建不同類型網(wǎng)站(企業(yè)站,門戶站,個人博客站等),是個建站的好幫手。小編帶著大家一起開發(fā)極致CMS的短信寶插件接口。我們使用的短信接口是我們短信寶短信群發(fā)平臺的短信接口,我們短信寶短信群發(fā)平臺非常穩(wěn)定,發(fā)送速度快,注冊就送測試短信,推薦大家使用。
1.首先打開項(xiàng)目app\admin\exts,新增smsbao 文件并創(chuàng)建config.php

1
2
3
4
5
6
7
8
9
10
<?php
 
return [
    'name'=>'短信寶短信注冊',//插件名
    'desc'=>'使用短信寶短信注冊或者登錄系統(tǒng)',//插件介紹
    'author'=>'短信寶小編',//作者介紹,這里可以把自己的聯(lián)系方式帶上去,方便用戶溝通
    'version'=>'1.0',//插件版本,默認(rèn)1.0為最低版本
    'update_time'=>'2025-06-12',//插件更新時間,格式:Y-m-d
    'module'=>'Home',//插件應(yīng)用的模塊,Home表示前臺模塊,Admin表示后臺模塊.插件安裝的時候會據(jù)此加載控制器到對應(yīng)的目錄中
];

接著創(chuàng)建PluginsController.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
namespace app\admin\exts;
 
use frphp\lib\Controller;
use frphp\extend\Page;
class PluginsController extends Controller {
 
    //自動執(zhí)行
    public function _init(){
    /**
            繼承系統(tǒng)默認(rèn)配置
 
        **/
 
        //檢查當(dāng)前賬戶是否合乎操作
        if(!isset($_SESSION['admin']) || $_SESSION['admin']['id']==0){
            Redirect(U('Login/index'));
 
        }
 
        if($_SESSION['admin']['isadmin']!=1){
            if(strpos($_SESSION['admin']['paction'],','.APP_CONTROLLER.',')!==false){
 
            }else{
                $action = APP_CONTROLLER.'/'.APP_ACTION;
                if(strpos($_SESSION['admin']['paction'],','.$action.',')===false){
                   $ac = M('Ruler')->find(array('fc'=>$action));
                   if($this->frparam('ajax')){
 
                       JsonReturn(['code'=>1,'msg'=>'您沒有【'.$ac['name'].'】的權(quán)限!','url'=>U('Index/index')]);
                   }
                   Error('您沒有【'.$ac['name'].'】的權(quán)限!',U('Index/index'));
                }
            }
        }
 
        $webconf = webConf();
        $this->webconf = $webconf;
        $customconf = get_custom();
        $this->customconf = $customconf;
 
        //插件模板頁目錄
 
        $this->tpl = '@'.dirname(__FILE__).'/tpl/';
 
        /**
            在下面添加自定義操作
        **/
 
    }
 
    //執(zhí)行SQL語句在此處處理,或者移動文件也可以在此處理
    public  function install(){
        //下面是新增test表的SQL操作        
        $this->recurse_copy(APP_PATH.'app/admin/exts/smsbao/file/',APP_PATH);
        return true;
 
    }
 
    //卸載程序,對新增字段、表等進(jìn)行刪除SQL操作,或者其他操作
    public function uninstall(){
        if(is_dir(APP_PATH.'smsbao')){
            deldir(APP_PATH.'smsbao');
        }
        return true;
    }
 
    // 原目錄,復(fù)制到的目錄
    function recurse_copy($src,$dst) {  
 
        $dir = opendir($src);
        @mkdir($dst);
        while(false !== ( $file = readdir($dir)) ) {
            if (( $file != '.' ) && ( $file != '..' )) {
                if is_dir($src '/' $file) ) {
                    $this->recurse_copy($src '/' $file,$dst '/' $file);
                }
                else {
                    copy($src '/' $file,$dst '/' $file);
                }
            }
        }
        closedir($dir);
    }
 
    //安裝頁面介紹,操作說明
    public function desc(){
 
        $this->display($this->tpl.'plugins-description.html');
    }
 
    //配置文件,插件相關(guān)賬號密碼等操作
    public  function setconf($plugins){
        //將插件賦值到模板中
        $this->plugins = $plugins;
        $this->config = json_decode($plugins['config'],1);
 
        $this->display($this->tpl.'plugins-body.html');
    }
 
    //獲取插件內(nèi)提交的數(shù)據(jù)處理
    public function setconfigdata($data){
 
        M('plugins')->update(['id'=>$data['id']],['config'=>json_encode($data,JSON_UNESCAPED_UNICODE)]);
        setCache('hook',null);//清空hook緩存
 
        JsonReturn(['code'=>0,'msg'=>'設(shè)置成功!']);
    }
 
}

2.接著在app\admin\exts\smsbao目錄下創(chuàng)建tpl文件夾并創(chuàng)建plugins-body.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    {include="style"}
<style>
.layui-form-label {
    width: 230px;
    }
</style>
</head>
<body >
  <div class="layui-rows" style="    margin: 84px;">
    <form class="layui-form" action="">
    <input name="id" value="{$plugins['id']}" type="hidden">
  <div class="layui-form-item">
    <label class="layui-form-label">短信寶賬號:</label>
    <div class="layui-input-inline">
      <input type="text" name="username" required  value="{$config['username']}" lay-verify="required" placeholder="請輸入短信寶賬號" autocomplete="off" class="layui-input">
    </div>
    <div class="layui-form-mid layui-word-aux">還沒注冊短信寶賬號? <a style="color: blue;" target="_blank" href=">去注冊</a></div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">短信寶APIKEY:</label>
    <div class="layui-input-inline">
      <input type="password" name="apiKey"  value="{$config['apiKey']}"  required lay-verify="required" placeholder="請輸入APIKEY" autocomplete="off" class="layui-input">
    </div>
    <div class="layui-form-mid layui-word-aux"></div>
  </div>
 <div class="layui-form-item">
    <label class="layui-form-label">短信簽名:</label>
    <div class="layui-input-inline">
      <input type="text" name="SignName" required  value="{$config['SignName']}" lay-verify="required" placeholder="短信簽名" autocomplete="off" class="layui-input">
    </div>
  </div>
   <div class="layui-form-item">
    <label class="layui-form-label">模板內(nèi)容:</label>
    <div class="layui-input-inline">
      <input type="text" name="templateContent" required  value="{$config['templateContent']}" lay-verify="required" placeholder="模板內(nèi)容" autocomplete="off" class="layui-input">
    </div>
    <div class="layui-form-mid layui-word-aux">模板示例:您的驗(yàn)證碼為: {code},如非本人操作,請忽略本短信</div>
  </div>
  <div class="layui-form-item">
    <div class="layui-input-block">
      <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
      <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
  </div>
</form>
</div>
    <script>
        $(function  () {
            layui.use('form'function(){
              var form = layui.form;
              //監(jiān)聽提交
              form.on('submit(formDemo)'function(data){
                $.post("{fun U('setconf')}",data.field,function(res){
                    //console.log(res);return false;
                     var res = JSON.parse(res);
                     if(res.code==1){
                        layer.msg(res.msg);
                     }else{
                        layer.msg(res.msg, {icon: 6,time: 2000},function(){
                        window.location.reload();
                        });
                     }
                })
                return false;
              });
            });
        })
    </script>
</body>
</html>

3.接著在app\admin\exts\smsbao目錄下創(chuàng)建file\smsbao文件夾并創(chuàng)建Sms.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
 
ini_set("display_errors""on");
 
class Sms
{
 
    private static $sendUrl ';
    private static $statusStr array(
                "0" => "短信發(fā)送成功",
                "-1" => "參數(shù)不全",
                "-2" => "服務(wù)器空間不支持,請確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!",
                "30" => "密碼錯誤",
                "40" => "賬號不存在",
                "41" => "余額不足",
                "42" => "帳戶已過期",
                "43" => "IP地址限制",
                "50" => "內(nèi)容含有敏感詞",
                "51" => "手機(jī)號碼不正確"
            );
 
    public static $username '';
    public static $apiKey '';
    public static $SignName '';
    public static $templateContent '';
 
    public static function setdata($username,$apiKey,$SignName,$templateContent){
        static::$username $username;
        static::$apiKey $apiKey;
        static::$SignName $SignName;
        static::$templateContent $templateContent;
 
    }
 
    private static function curl_get($sendurl){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $sendurl);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
    /**
     * 發(fā)送短信
     * @return stdClass
     */
    public static function sendSms($tel,$code) {
         try {
            $statusStr static::$statusStr;
            $user static::$username;
            $apikey static::$apiKey;
            $templateContent str_replace('{code}'$codestatic::$templateContent);
            $content '【'static::$SignName.'】'.$templateContent;
            $sendurl static::$sendUrl."u=".$user."&p=".$apikey."&m=".$tel."&c=".urlencode($content);
            $result static::curl_get($sendurl);
 
            if ($result == 0) {
                return $res['code'] = $result;
            }else{
                $res['code'] = $result;
                $res['msg'] = $statusStr[$result];
                return $res;
            }
        catch (\Exception $error) {
            $res['code'] = '-1';
            $res['msg'] = "發(fā)送失敗";
            return $res;
        }
 
        return $res['code'] = '0';
 
    }
 
}

4.接著在app\admin\exts\smsbao目錄下創(chuàng)建controller\home文件夾并創(chuàng)建MsgController.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
namespace app\home\plugins;
 
use app\home\c\CommonController;
 
 
class MsgController extends CommonController
{
 
    function _init(){
        parent::_init();
        $w['filepath'] = 'smsbao';
        $w['isopen'] = 1;
        $res = M('plugins')->find($w);
        if(!$res){
            JsonReturn(['code'=>1,'msg'=>'短信插件未開啟!']);
        }
        $res['config'] = json_decode($res['config'],1);
        $this->plugin = $res;
        require_once  APP_PATH.'smsbao/Sms.php';
        \Sms::setdata($res['config']['username'],$res['config']['apiKey'],$res['config']['SignName'],$res['config']['templateContent']);
    }
 
    function index(){
 
        $yzmname $this->frparam('codename',1);
        $yzm $this->frparam('yzm',1);
        if(isset($GLOBALS['Redis'])){
            $code $GLOBALS['Redis']->get($yzmname);
            if(!$yzm || md5(md5($yzm))!=$code){
 
                JsonReturn(['code'=>1,'msg'=>'驗(yàn)證碼錯誤!','data'=>[]]);
            }
 
        }else{
            if(!$yzm || md5(md5($yzm))!=$_SESSION[$yzmname]){
 
                JsonReturn(['code'=>1,'msg'=>'驗(yàn)證碼錯誤!','data'=>[]]);
            }
        }
        $tel $this->frparam('tel',1);
        if(strlen($tel)==11){
 
        }else{
            JsonReturn(['code'=>1,'msg'=>'手機(jī)號格式錯誤!','data'=>[]]);
        }
 
        $code = rand(100000,999999);
        $_SESSION['tel_code'] = $code;
        if(isset($GLOBALS['Redis'])){
            $GLOBALS['Redis']->setex('tel_code',5 * 60,$code);
        }
        $response = \Sms::sendSms($tel,$code);
        //echo "發(fā)送短信(sendSms)接口返回的結(jié)果:\n";
        //print_r($response);
        if($response['code']=='0'){
            JsonReturn(['code'=>0,'msg'=>'發(fā)送成功!','data'=>[]]);
 
        }else{
            JsonReturn(['code'=>1,'msg'=>$response['msg'],'data'=>[]]);
        }
 
    }
 
    function sendmsg($code,$tel){
        if(strlen($tel)==11){
 
        }else{
            JsonReturn(['code'=>1,'msg'=>'手機(jī)號格式錯誤!','data'=>[]]);
        }
 
        $_SESSION['tel_code'] = $code;
        if(isset($GLOBALS['Redis'])){
            $GLOBALS['Redis']->setex('tel_code',5 * 60,$code);
        }
        $response = \Sms::sendSms($tel,$code);
        //echo "發(fā)送短信(sendSms)接口返回的結(jié)果:\n";
        //print_r($response);
        if($response['code']=='0'){
            JsonReturn(['code'=>0,'msg'=>'發(fā)送成功!','data'=>[]]);
 
        }else{
            JsonReturn(['code'=>1,'msg'=>$response['msg'],'data'=>[]]);
        }
    }
}

5.接著在注冊、登錄頁面增加以下前端代碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#################login.html頁面####################
<div class="form-control">
<label for="">手機(jī)驗(yàn)證碼:</label>
<input type="text" value="" name="telyzm" id="telyzm" placeholder="請輸入手機(jī)驗(yàn)證碼">
<button type="button" onclick="sendmsg()">發(fā)送驗(yàn)證碼</button>
  </div>
function sendmsg(){
var tel = $("#tel").val();
if(tel==''){
alert('手機(jī)號不能為空!');
return false;
}
var vercode = $("#yzm").val();
if(vercode==''){
alert('圖形驗(yàn)證碼不能為空!');
return false;
}
$.post('/msg/index',{tel:tel,yzm:vercode,codename:'login_vercode'},function(r){
alert(r.msg);
},'json');
}
 
#################register.html頁面####################
 
<div class="form-control">
<label for="">手機(jī)驗(yàn)證碼:</label>
<input type="text" value="" name="telyzm" id="telyzm" placeholder="請輸入手機(jī)驗(yàn)證碼">
<button type="button" onclick="sendmsg()">發(fā)送驗(yàn)證碼</button>
  </div>
function sendmsg(){
var tel = $("#tel").val();
if(tel==''){
alert('手機(jī)號不能為空!');
return false;
}
var vercode = $("#yzm").val();
if(vercode==''){
alert('圖形驗(yàn)證碼不能為空!');
return false;
}
$.post('/msg/index',{tel:tel,yzm:vercode,codename:'reg_vercode'},function(r){
alert(r.msg);
},'json');
}

經(jīng)過上面的增加,短信寶的短信平臺已經(jīng)對接成功了,可以正常使用了。

報備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會人工審核,短信內(nèi)容3~5秒就可送達(dá)。

另外:我們已經(jīng)開發(fā)好完整的極致CMS系統(tǒng)短信寶插件,點(diǎn)擊此鏈接 下載及查看安裝流程。

開源插件

最新更新

電商類

CMS類

微信類

文章標(biāo)簽
91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国
久久综合久色欧美综合狠狠| 精品欧美久久久| 亚洲成人av电影在线| 欧美羞羞免费网站| 日韩精品久久理论片| 日韩亚洲欧美一区二区三区| 国产一区二区三区四区五区美女 | 亚洲一区二区免费视频| 欧美日韩亚洲高清一区二区| 免费成人av在线| 国产精品久久久久影院| 在线亚洲+欧美+日本专区| 美女视频一区二区三区| 国产精品久久久久婷婷| 欧美精品九九99久久| 丰满少妇久久久久久久| 同产精品九九九| 国产精品人人做人人爽人人添 | 国产一区二区三区在线看麻豆| 国产精品成人免费精品自在线观看| 91免费国产视频网站| 奇米精品一区二区三区在线观看| 中文字幕的久久| 日韩视频免费观看高清完整版在线观看 | 日韩电影一区二区三区四区| 国产精品乱码久久久久久| 欧美一级片免费看| 欧美色精品在线视频| 成人精品高清在线| 久99久精品视频免费观看| 亚洲成人福利片| 亚洲精品国产a久久久久久| 91啦中文在线观看| 2020国产精品久久精品美国| 国产麻豆精品theporn| 午夜久久久久久久久| 一区二区三区精品在线| 欧美国产精品一区| 日韩av中文字幕一区二区三区| 亚洲欧美日韩中文播放| 欧美国产日韩亚洲一区| 久久婷婷国产综合国色天香| 欧美一级理论片| 91精品国产免费久久综合| 欧美精品高清视频| 色噜噜狠狠成人网p站| 91蝌蚪porny| 91影院在线观看| 91丨porny丨最新| 日本不卡一二三区黄网| 亚洲永久免费av| 亚洲综合区在线| 亚洲日本va午夜在线影院| 国产精品久久久久久久久免费丝袜| 欧美国产激情二区三区| 欧美国产一区在线| 亚洲欧美日韩精品久久久久| 国产精品久久影院| 亚洲激情欧美激情| 欧美日韩一区二区三区在线| 波多野洁衣一区| 欧美成人乱码一区二区三区| 日韩欧美中文字幕精品| 精品国产自在久精品国产| 久久婷婷综合激情| 国产香蕉久久精品综合网| 国产精品进线69影院| 《视频一区视频二区| 亚洲国产你懂的| 日韩电影在线观看一区| 国产一区二区三区四区五区美女| 国产精品综合在线视频| 成人黄色电影在线| 日本道色综合久久| 在线视频亚洲一区| 欧美视频一区二区在线观看| 欧美高清视频不卡网| 欧美一级生活片| 久久精品网站免费观看| 欧美日韩日日摸| 欧美日韩精品一二三区| 欧美精品久久99| 国产激情精品久久久第一区二区| 婷婷国产v国产偷v亚洲高清| 极品美女销魂一区二区三区免费| 国产成人精品免费| 欧美系列一区二区| 精品免费一区二区三区| 韩国欧美国产1区| 91香蕉国产在线观看软件| 宅男噜噜噜66一区二区66| 国产精品福利av| 免费一级片91| jlzzjlzz欧美大全| 日韩精品综合一本久道在线视频| 亚洲色图清纯唯美| 韩国一区二区三区| 欧美日韩成人综合| 国产精品久久久久久久久快鸭 | 91天堂素人约啪| 九色|91porny| 在线观看亚洲精品| 久久久精品tv| 亚洲国产裸拍裸体视频在线观看乱了| 日韩二区三区四区| 色婷婷av一区二区三区大白胸| 欧美成人一区二区三区片免费| 亚洲日本免费电影| 丰满白嫩尤物一区二区| 日韩欧美黄色影院| 午夜精品久久久久久久 | 免费国产亚洲视频| 成人的网站免费观看| 日韩一级二级三级精品视频| 亚洲欧美韩国综合色| 国产成人亚洲精品青草天美| 欧美一区二区黄色| 亚洲电影一区二区三区| 91搞黄在线观看| 中文字幕一区免费在线观看| 国产一区二区0| 欧美白人最猛性xxxxx69交| 天天操天天综合网| 欧美日本韩国一区| 亚洲午夜激情av| 在线视频欧美精品| 亚洲午夜在线视频| 欧美自拍偷拍一区| 亚洲午夜精品在线| 在线精品国精品国产尤物884a| 亚洲另类春色校园小说| 丰满少妇在线播放bd日韩电影| 久久久国产精华| 国产一区二区中文字幕| 精品不卡在线视频| 国产一区视频网站| 国产日韩欧美精品在线| 国产精品亚洲视频| 中文字幕在线免费不卡| 成人app软件下载大全免费| 久久久久亚洲蜜桃| 紧缚捆绑精品一区二区| 99精品久久只有精品| 欧美无乱码久久久免费午夜一区| 国产精品成人免费精品自在线观看| 久久成人av少妇免费| 久久综合视频网| 高清视频一区二区| 亚洲婷婷综合色高清在线| 午夜精品久久久久久久久久| 色综合色综合色综合色综合色综合 | 久久国产精品99精品国产 | 在线亚洲精品福利网址导航| 亚洲视频在线一区二区| 91免费在线看| 一区二区三区在线观看动漫| 欧美日韩一区二区欧美激情| 日本中文在线一区| 久久精品在线观看| 99久久99久久精品国产片果冻| 亚洲免费av网站| 久久99热99| 在线观看免费亚洲| 一区二区激情视频| 一本大道综合伊人精品热热| 久久蜜桃一区二区| 成人教育av在线| 日韩欧美专区在线| 亚洲精品第一国产综合野| 精品视频在线免费观看| 成人av午夜电影| 精品少妇一区二区三区视频免付费 | 色av成人天堂桃色av| 一本久久精品一区二区| 色又黄又爽网站www久久| 91久久精品国产91性色tv| 在线免费不卡电影| 精品视频999| 欧美日韩国产经典色站一区二区三区 | 26uuu精品一区二区三区四区在线| 欧美精品一区二区高清在线观看| 精品国产一区二区三区久久影院| 久久综合色婷婷| 日本一区二区视频在线观看| 国产精品伦一区| 亚洲国产精品影院| 奇米在线7777在线精品| 精品一区二区在线看| 成人av资源在线观看| 欧美亚洲一区二区在线| 欧美一区二区三区精品| 国产日韩欧美精品在线| 一区二区三区四区高清精品免费观看 | 国产精品综合av一区二区国产馆| 粉嫩一区二区三区性色av| 色噜噜狠狠成人网p站| 日韩午夜激情电影| 国产精品不卡一区二区三区| 亚洲3atv精品一区二区三区| 国产专区欧美精品|