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類

微信類

文章標簽