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


待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-21:00

emlog_pro_2.5.18新增短信寶短信接口

emlog是一款基于PHP和MySQL的功能強大的博客及CMS建站系統,追求快速、穩定、簡單、舒適的建站體驗。小編對這款軟件還是比較了解的,小編今天就以新增短信接口為例為大家講解一下如何進行二次開發,我們使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺非常穩定,發送速度快,注冊就送測試短信,推薦大家使用。
1:打開項目:admin\views\setting.php,以及同目錄下的setting_mail.php,setting_seo.php,setting_user.php,blogger.php增加短信設置頁面

1
2
3
4
5
6
7
8
9
10
<ul class="nav nav-pills">
        <li class="nav-item"><a class="nav-link active" href="./setting.php">基礎設置</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=user">用戶設置</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=mail">郵件通知</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=seo">SEO設置</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=api">API</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=ai">?AI</a></li>
        <li class="nav-item"><a class="nav-link" href="./blogger.php">個人信息</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=sms">短信通知</a></li>
    </ul>

2:接著在項目admin\views目錄新增短信寶設置頁面 setting_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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php if (!defined('EMLOG_ROOT')) {
    exit('error!');
} ?>
<?php if (isset($_GET['activated'])): ?>
    <div class="alert alert-success">設置保存成功</div><?php endif ?>
<div class="d-sm-flex align-items-center justify-content-between mb-4">
    <h1 class="h3 mb-0 text-gray-800">設置</h1>
</div>
<div class="panel-heading">
    <ul class="nav nav-pills">
        <li class="nav-item"><a class="nav-link" href="./setting.php">基礎設置</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=user">用戶設置</a></li>
        <li class="nav-item"><a class="nav-link " href="./setting.php?action=mail">郵件通知</a></li>
        <li class="nav-item"><a class="nav-link" href="./setting.php?action=seo">SEO優化</a></li>
        <li class="nav-item"><a class="nav-link" href="./blogger.php">個人信息</a></li>
        <li class="nav-item"><a class="nav-link active" href="./setting.php?action=sms">短信通知</a></li>
    </ul>
</div>
<div class="card shadow mb-4 mt-2">
    <div class="card-body">
        <form action="setting.php?action=sms_save" method="post" name="input" id="sms_config">
            <h4>短信發送</h4>
            <div class="form-group form-check">
                <input class="form-check-input" type="checkbox" value="y" name="is_smsup" id="is_smsup" <?= $conf_is_signup ?> />
                <label class="form-check-label">開啟短信注冊</label>
            </div>
            <div class="form-group">
                <label>短信寶賬號</label>
                <input  class="form-control" value="<?= $sms_user ?>" name="sms_user" required>
                <a target="_blank" href=" style="color: red">還沒有注冊短信寶賬號!馬上注冊</a>
            </div>
            <div class="form-group">
                <label>短信寶APIKEY</label>
                <input type="password" name="sms_pwd" cols="" rows="3" class="form-control" value="<?= $sms_pwd ?>" required>
            </div>
            <div class="form-group">
                <label>短信簽名</label>
                <input class="form-control" value="<?= $sms_sign ?>" name="sms_sign" required>
            </div>
            <div class="form-group">
                <label>注冊短信模板</label>
                <input class="form-control" value="<?= $sms_tmp ?>" name="sms_tmp" required>
            </div>
            <div class="form-group">
                <input name="token" id="token" value="<?= LoginAuth::genToken() ?>" type="hidden"/>
                <input type="submit" value="保存設置" class="btn btn-sm btn-success"/>
                <input type="button" value="發送測試" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#testSms"/>
            </div>
            <!-- 設置接收短信的模態框 -->
            <div class="modal fade" id="testSms">
                <div class="modal-dialog modal-sm">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h4 class="modal-title">發送測試</h4>
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                        </div>
                        <div class="modal-body">
                            <div class="form-group">
                                <input class="form-control" type="email" name="testTo" placeholder="輸入接收手機號">
                            </div>
                        </div>
                        <div class="modal-footer">
                            <div id="testMailMsg"></div>
                            <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">關閉</button>
                            <button type="button" class="btn btn-success btn-sm" id="testSendBtn">發送</button>
                        </div>
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>
<script>
    $("#menu_category_sys").addClass('active');
    $("#menu_sys").addClass('show');
    $("#menu_setting").addClass('active');
    setTimeout(hideActived, 2600);
 
    $("#testSendBtn").click(function () {
        $("#testMailMsg").html("<small class='text-secondary'>發送中...<small>");
 
        $.post("setting.php?action=sms_test", $("#sms_config").serialize(), function (data) {
            if (data == 0) {
                $("#testMailMsg").html("<small class='text-success'>發送成功</small>");
            } else {
                $("#testMailMsg").html(data);
            }
 
        });
    })
</script>

3:接著打開admin\views\signup.php修改注冊頁面,增加短信驗證頁面

1
2
3
4
5
6
7
8
9
<?php if ($is_smsup): ?>
<div class="form-group form-inline">
  <input  type="text" id="userPhone" class="form-control form-control-user" placeholder="請輸入手機號碼">
  <button  type="button" class="btn btn-info"  id="second">點擊獲取驗證碼</button>
</div>
<div class="form-group">
  <input type="text" name="securityCode" class="form-control form-control-user"  placeholder="請輸入驗證碼" required autofocus>
</div>
<?php endif; ?>

同時也增加有關60秒倒計時的js校驗代碼

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
 //用ajax提交到后臺的發送短信接口
    function sendyzm(obj){
        var phone = $("#userPhone").val();
        var result = isPhoneNum();
        var login_code = $("#login_code").val();
        if(result) {
            $.ajax({
                url:"/admin/account.php?action=smsYzm&phone="+phone+'&login_code='+login_code,
                type:"get",
                processData: false,
                contentType: false,
                success:function(data){
                    if (data == 0) {
                        setTime(obj);
                    }else if (data == 1){
                        alert('驗證碼發送頻繁')
                    }else if (data == 2){
                        alert('圖形驗證碼錯誤')
                    }else{
                        alert('驗證碼發送失敗')
                    }
                },
                error:function(){
                    alert("驗證碼發送失敗")
                }
            })
        }
    }
 
    //60s倒計時實現邏輯
    var countdown = 60;
    function setTime(obj) {
        if (countdown == 0) {
            obj.prop('disabled'false);
            obj.text("點擊獲取驗證碼");
            countdown = 60;//60秒過后button上的文字初始化,計時器初始化;
            return;
        else {
            obj.prop('disabled'true);
            obj.text("("+countdown+"s)后重新發送") ;
            countdown--;
        }
        setTimeout(function() { setTime(obj) },1000) //每1000毫秒執行一次
    }
 
 
    //校驗手機號是否合法
    function isPhoneNum(){
        var phonenum = $("#userPhone").val();
        var reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
        if(!reg.test(phonenum)){
            alert('請輸入有效的手機號碼!');
            return false;
        }else{
            return true;
        }
    }
    });

4:接著打開admin\account.php修改signup注冊方法,并新增smsYzm短信驗證碼生成方法

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
// 注冊頁面
if ($action == 'signup') {
    loginAuth::checkLogged();
    $login_code = Option::get('login_code') === 'y';
    $email_code = Option::get('email_code') === 'y';
    $is_smsup = Option::get('is_smsup') === 'y';
    $error_msg '';
 
    if (Option::get('is_signup') !== 'y') {
        emMsg('系統已關閉注冊!');
    }
 
    $page_title '注冊賬號';
    include View::getAdmView('user_head');
    require_once View::getAdmView('signup');
    View::output();
}
 
if ($action == 'smsYzm') {
    $data = [];
    //做檢測
    $phone = isset($_GET['phone']) ? addslashes(trim($_GET['phone'])) : '';
    if (!isset($_SESSION)) {
        session_start();
    }
    if (isset($_SESSION['tel']) && time()-$_SESSION['tel'] < 60){
        echo 1;
        exit;
    }
    $login_code = isset($_GET['login_code']) ? addslashes(strtoupper(trim($_GET['login_code']))) : ''//登錄注冊驗證碼
    if (!User::checkLoginCode($login_code)) {
        echo 2;
        exit;
    }
    $rand = mt_rand(0,9999);
    $test_temp = Option::get('sms_tmp') ;
    $content str_replace('{$code}',$rand,$test_temp);
    $res = (new SmsBao())->send($phone,$content);
//    $res = '發送成功';
    if ($res != "發送成功"){
        echo $res;
      exit;
    }else{
        if (!isset($_SESSION)) {
            session_start();
        }
        $_SESSION['tel'] = time();
        $_SESSION['sms_yzm_code'] = $rand;
        echo 0;
        exit;
    }
}

5:接著打開admin\setting.php新增smssms_testsms_save方法

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
if ($action == 'sms') {
    $options_cache $CACHE->readCache('options');
    $sms_user $options_cache['sms_user'];
    $sms_pwd $options_cache['sms_pwd'];
    $sms_sign $options_cache['sms_sign'];
    $sms_tmp $options_cache['sms_tmp'];
    $conf_is_signup $options_cache['is_smsup'] == 'y' 'checked="checked"' '';
 
    include View::getAdmView('header');
    require_once(View::getAdmView('setting_sms'));
    include View::getAdmView('footer');
    View::output();
}
if ($action == 'sms_test') {
    $data = [
        'testTo'      => $_POST['testTo'] ?? '',
    ];
    $test_temp '您的驗證碼為1234';
    try {
       $res = (new SmsBao())->send($data['testTo'],$test_temp);
        if ($res != "發送成功"){
            exit("<small class='text-danger'>$res</small>");
            return false;
        }
    catch (Exception $exc) {
        exit("<small class='text-danger'>發送失敗</small>");
        return false;
    }
}
if ($action == 'sms_save') {
    LoginAuth::checkToken();
    $data = [
        'is_smsup'   => isset($_POST['is_smsup']) ? addslashes($_POST['is_smsup']) : '',
        'sms_user'   => isset($_POST['sms_user']) ? addslashes($_POST['sms_user']) : '',
        'sms_pwd'     => isset($_POST['sms_pwd']) ? addslashes($_POST['sms_pwd']) : '',
        'sms_tmp'     => isset($_POST['sms_tmp']) ? addslashes($_POST['sms_tmp']) : '',
        'sms_sign' => isset($_POST['sms_sign']) ? addslashes($_POST['sms_sign']) : '',
    ];
    foreach ($data as $key => $val) {
        Option::updateOption($key$val);
    }
    $CACHE->updateCache(array('options'));
    header('Location: ./setting.php?action=sms&activated=1');
}

6:接著在項目\include\lib 目錄下新增smsbao.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
<?php
 
 
class SmsBao {
    public $sms_user;
    public $sms_pwd;
    public $sms_sign;
 
    public function __construct() {
        $this->sms_user = Option::get('sms_user');
        $this->sms_pwd = Option::get('sms_pwd');
        $this->sms_sign = Option::get('sms_sign');
    }
 
    function send($to,$content) {
        try {
            $statusStr array(
                "0" => "發送成功",
                "-1" => "參數不全",
                "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
                "30" => "密碼錯誤",
                "40" => "賬號不存在",
                "41" => "余額不足",
                "42" => "帳戶已過期",
                "43" => "IP地址限制",
                "50" => "內容含有敏感詞"
            );
            $smsapi ";
            $user $this->sms_user; //短信平臺帳號
            $pass = md5($this->sms_pwd); //短信平臺密碼
            $content="【".$this->sms_sign."】".$content;//要發送的短信內容
            $phone $to;//要發送短信的手機號碼
            $sendurl $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
            $res file_get_contents($sendurl);
            return $statusStr[$res];
        catch (Exception $exc) {
            return false;
        }
    }
 
}

好了經過以上的添加,短信寶的短信平臺已經替換成功了,可以正常使用了

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

另外:我們已經開發好完整的emlog_pro系統短信寶插件,點擊此鏈接 下載及查看安裝流程。

開源插件

最新更新

電商類

CMS類

微信類

文章標簽
91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国
51久久夜色精品国产麻豆| 国产拍揄自揄精品视频麻豆| 亚洲人妖av一区二区| 在线观看成人小视频| 日韩和欧美的一区| 中文字幕va一区二区三区| 欧美精品一二三区| 午夜精品久久久久| 国产欧美日韩视频一区二区| 在线观看日产精品| 亚洲激情成人在线| 亚洲私人影院在线观看| 色妞www精品视频| 久久精品一区二区三区不卡| 欧美日高清视频| 在线观看精品一区| 99re8在线精品视频免费播放| 国产一区二区三区在线观看免费| 欧美日韩国产综合草草| 91在线精品秘密一区二区| 国产精品一区不卡| 国产剧情在线观看一区二区| 成人免费在线观看入口| 欧美在线一二三四区| 97se狠狠狠综合亚洲狠狠| 不卡av电影在线播放| 国产精品888| 日本v片在线高清不卡在线观看| 亚洲一区二区视频在线| 一区二区三区国产精品| 亚洲一区二区黄色| 偷拍亚洲欧洲综合| 麻豆精品一区二区综合av| 亚洲国产精品99久久久久久久久| 久久综合九色综合欧美98 | 国产精品成人在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美少妇性性性| 老司机精品视频导航| 日韩欧美不卡一区| 色综合久久久久综合体桃花网| 风间由美一区二区三区在线观看| 国产一区二区91| 国产精品12区| 91小视频免费观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲视频在线一区| 亚洲一区二区美女| 日本视频在线一区| 精品一二三四区| 成人av动漫网站| 精品视频123区在线观看| 欧美肥大bbwbbw高潮| 精品久久人人做人人爰| 国产精品国产三级国产aⅴ原创| 亚洲在线视频一区| 久久99精品视频| 国产欧美日韩卡一| 亚洲一区二区成人在线观看| 免费人成在线不卡| 美腿丝袜一区二区三区| 国产成人午夜片在线观看高清观看| av在线播放不卡| 欧美高清激情brazzers| xf在线a精品一区二区视频网站| 国产精品国产精品国产专区不片| 午夜视频在线观看一区二区三区| 国产乱一区二区| 国产喂奶挤奶一区二区三区| 亚洲同性gay激情无套| 中文字幕乱码久久午夜不卡| 国产在线播放一区| av不卡免费在线观看| 国产精品1区2区| 欧美午夜精品久久久久久超碰| 久久综合99re88久久爱| 一区二区三区不卡在线观看 | 亚洲欧美另类图片小说| 久久99精品国产.久久久久久| 91丨porny丨在线| 自拍偷拍亚洲激情| 欧美激情一区二区在线| 欧美日韩高清一区二区三区| 国产精品午夜免费| 午夜精品影院在线观看| 91麻豆国产福利精品| 国产日产欧美一区二区视频| 欧美一级爆毛片| 欧美一区二区福利视频| 亚洲欧美日韩中文字幕一区二区三区 | 91麻豆国产福利在线观看| 国产清纯在线一区二区www| 美女视频黄频大全不卡视频在线播放| 一本色道**综合亚洲精品蜜桃冫 | 亚洲欧美乱综合| 成人av高清在线| 国产精品午夜春色av| 国产一区二区三区不卡在线观看| 欧美精品乱码久久久久久按摩| 成人av电影免费在线播放| 色999日韩国产欧美一区二区| 欧美日韩一级二级| 97精品超碰一区二区三区| 国产亚洲精品aa午夜观看| 精品一区二区三区影院在线午夜| 欧美日韩1234| 日本强好片久久久久久aaa| 欧美日韩三级视频| 亚洲地区一二三色| 不卡一区二区在线| 国产日韩av一区二区| 国产99久久久国产精品免费看| 2014亚洲片线观看视频免费| 精品无码三级在线观看视频 | 亚洲日本在线天堂| 91久久奴性调教| 亚洲制服欧美中文字幕中文字幕| 91网址在线看| √…a在线天堂一区| 91豆麻精品91久久久久久| 亚洲妇熟xx妇色黄| 欧美一级片在线观看| 国产在线精品一区二区不卡了| 3d成人动漫网站| 一卡二卡欧美日韩| 欧美电影在哪看比较好| 蜜臀精品一区二区三区在线观看| 日韩欧美亚洲一区二区| 亚洲成人激情自拍| 欧美精品v国产精品v日韩精品| 中文字幕精品一区二区三区精品| 色综合视频在线观看| 肉色丝袜一区二区| 欧美日韩亚洲不卡| 午夜免费久久看| 久久久国产精华| eeuss鲁一区二区三区| 亚洲一区二区三区精品在线| 欧美一激情一区二区三区| 成人综合在线观看| 一区二区三区不卡在线观看| 欧美日韩视频一区二区| 亚洲国产综合色| 欧美tickle裸体挠脚心vk| av在线不卡网| 裸体在线国模精品偷拍| 亚洲欧洲精品一区二区精品久久久 | 国产高清不卡一区二区| 夜夜爽夜夜爽精品视频| 亚洲精品在线观看网站| 91丝袜高跟美女视频| 美女在线观看视频一区二区| 国产日韩欧美亚洲| 99久久精品免费| 国产精品一区二区免费不卡| 亚洲国产一区二区视频| 国产女同性恋一区二区| 欧美日韩免费不卡视频一区二区三区| 国产一区二区三区四区在线观看| 亚洲综合精品久久| 日本一区二区成人| 欧美一级免费观看| 99国产精品久久久久久久久久久| 美日韩一区二区三区| 亚洲一区在线观看网站| 欧美a级一区二区| 一区二区三区日韩在线观看| 久久婷婷国产综合精品青草| 欧美色国产精品| 97精品国产露脸对白| 成人手机在线视频| 国产一区二区伦理| 青青草91视频| 亚洲国产精品一区二区久久恐怖片| 欧美日韩国产另类一区| 在线观看91精品国产麻豆| 欧美在线观看禁18| 色综合久久久久久久| 99国产精品久久久久| 成人动漫一区二区在线| 成人黄页在线观看| 欧美三级欧美一级| 欧美在线不卡视频| 欧美偷拍一区二区| 在线免费视频一区二区| 色婷婷国产精品| 欧美制服丝袜第一页| 91国产视频在线观看| 色视频成人在线观看免| 国产成人免费在线视频| 成人午夜激情在线| 99这里都是精品| 日韩电影一区二区三区四区| 精品一区二区三区在线播放 | 激情久久五月天| 精品一区二区三区欧美| 国产高清一区日本| 成人小视频在线| 99久久婷婷国产精品综合| 大白屁股一区二区视频|