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


待發短信

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

4001-021-502

工作時間

9:00-21:00

PbootCMS_V3.1.2注冊模塊新增短信寶短信接口

PbootCMS是全新內核且永久開源免費的PHP企業網站開發建設管理系統,是一套高效、簡潔、 強悍的可免費商用的PHP CMS源碼,能夠滿足各類企業網站開發建設的需要。系統采用簡單到想哭的模板標簽,只要懂HTML就可快速開發企業網站。小編對他還是比較了解的,今天小編就以新增短信接口為例,給大家講解一下如何進行二次開發,我們今天講解的是v3.1.2版本,使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺的接口非常穩定,發送速度快,注冊就送測試短信,推薦大家使用
1:打開項目:apps\admin\view\default\system\config.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
<div class="layui-tab-item">
                <form action="{url./admin/Config/index}" method="post" class="layui-form">
                    <input type="hidden" name="formcheck" value="{$formcheck}" >
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">是否開啟</label>
                        <div class="layui-input-block">
                            <input type="radio" name="sms_status" value="1" {if([$configs.sms_status.value]==1)} checked="checked" {/if} title="是">
                            <input type="radio" name="sms_status" value="0" {if([$configs.sms_status.value]==0)} checked="checked" {/if} title="否">
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label">短信寶賬號</label>
                        <div class="layui-input-inline">
                            <input type="text" name="sms_account"  value="{$configs.sms_account.value}" placeholder="請輸入短信寶賬號" class="layui-input">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">短信寶密碼</label>
                        <div class="layui-input-inline">
                            <input type="password" name="sms_pwd" value="{$configs.sms_pwd.value}" placeholder="請輸入短信寶密碼" class="layui-input">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">短信寶簽名</label>
                        <div class="layui-input-inline">
                            <input type="text" name="sms_signid"  value="{$configs.sms_signid.value}" placeholder="請輸入短信寶簽名" class="layui-input">
                        </div>
                    </div>

2:打開相同項目:apps\admin\view\default\system\config.html 修改大概在707行

1
2
3
4
5
6
7
8
9
<div class="layui-form-item">
        <label class="layui-form-label">會員注冊驗證碼</label>
        <div class="layui-input-block">
            <input type="radio" name="register_check_code" value="0" {if([$configs.register_check_code.value]=='0')} checked="checked" {/if} title="禁用">
            <input type="radio" name="register_check_code" value="1" {if([$configs.register_check_code.value]=='1'||[$configs.register_check_code.value]=='')} checked="checked" {/if} title="普通驗證碼">
            <input type="radio" name="register_check_code" value="2" {if([$configs.register_check_code.value]=='2')} checked="checked" {/if} title="郵箱驗證碼">
             <input type="radio" name="register_check_code" value="3" {if([$configs.register_check_code.value]=='3')} checked="checked" {/if} title="短信驗證碼">
        </div>
    </div>

3:打開項目:apps\admin\controller\system\ConfigController.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
public function index()
    {
        if (! ! $action = get('action')) {
            switch ($action) {
                case 'sendemail':
                    $rs = sendmail($this->config(), get('to'), '【' . CMSNAME . '】測試郵件''歡迎您使用' . CMSNAME . '網站開發管理系統!');
                    if ($rs === true) {
                        alert_back('測試郵件發送成功!');
                    else {
                        error('發送失敗:' . $rs);
                    }
                    break;
            }
        }
         
        // 修改參數配置
        if ($_POST) {
            unset($_POST['upload']); // 去除上傳組件
            foreach ($_POST as $key => $value) {
                if (! preg_match('/^[\w\-]+$/', $key)) {
                    continue;
                }
                $config = array(
                    'debug',
                    'sn',
                    'sn_user',
                    'pagenum',
                    'tpl_html_cache',
                    'tpl_html_cache_time',
                    'session_in_sitepath'
                );
                if (in_array($key, $config)) {
                    if ($key == 'tpl_html_cache_time' && ! $value) {
                        $value = 900;
                    else {
                        $value = post($key);
                    }
                    $this->modConfig($key, $value);
                else {
                    $this->modDbConfig($key);
                }
            }
             
            $this->log('修改參數配置成功!');
            path_delete(RUN_PATH . '/config'); // 清理緩存的配置文件
             
            switch (post('submit')) {
                case 'email':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t2'), false));
                    break;
                case 'baidu':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t3'), false));
                    break;
                case 'api':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t4'), false));
                    break;
                case 'watermark':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t5'), false));
                    break;
                case 'security':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t6'), false));
                    break;
                case 'urlrule':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t7'), false));
                    break;
                case 'pagetitle':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t8'), false));
                    break;
                case 'member':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t9'), false));
                    break;
                case 'upgrade':
                    success('修改成功!', url('/admin/Upgrade/index' . get_tab('t2'), false));
                    break;
                case 'sms':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t10'), false));
                    break;
                default:
                    success('修改成功!', url('/admin/Config/index'false));
            }
        }
        $configs = $this->model->getList();
        $configs['debug']['value'] = $this->config('debug');
        $configs['sn']['value'] = $this->config('sn');
        $configs['sn_user']['value'] = $this->config('sn_user');
        $configs['session_in_sitepath']['value'] = $this->config('session_in_sitepath');
        $configs['pagenum']['value'] = $this->config('pagenum');
        $configs['url_type']['value'] = $this->config('url_type');
        $configs['tpl_html_cache']['value'] = $this->config('tpl_html_cache');
        $configs['tpl_html_cache_time']['value'] = $this->config('tpl_html_cache_time');
        $this->assign('configs', $configs);
         
        $this->assign('groups', model('admin.member.MemberGroup')->getSelect());
         
        $this->display('system/config.html');
    }

4:打開項目:apps\home\controller\ParserController.php 修改大概143行

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
  public function parserSingleLabel($content)
    {
        $content = str_replace('{pboot:ucenter}', Url::home('member/ucenter'), $content); // 用戶中心
        if (! ! $url = get("backurl")) { // 獲取會跳地址
            $content = str_replace('{pboot:login}', Url::home('member/login'null"backurl=" . urlencode($url)), $content); // 登錄地址
        else {
            $content = str_replace('{pboot:login}', Url::home('member/login'), $content); // 登錄地址
        }
         
        $content = str_replace('{pboot:register}', Url::home('member/register'), $content); // 注冊地址
        $content = str_replace('{pboot:isregister}', Url::home('member/isRegister'), $content); // 檢查是否注冊地址
        $content = str_replace('{pboot:umodify}', Url::home('member/umodify'), $content); // 修改資料地址
        $content = str_replace('{pboot:logout}', Url::home('member/logout'), $content); // 推出登錄
        $content = str_replace('{pboot:upload}', Url::home('member/upload'), $content); // 上傳資料
         
        if (strpos($content, '{pboot:sendemail}')) {
            session('sendemail'true); // 避免非法外部提交
            $content = str_replace('{pboot:sendemail}', Url::home('member/sendEmail'), $content); // 上傳資料
        else {
            session('sendemail'false);
        }
 
        if (strpos($content, '{pboot:sendsms}')) {
            session('sendsms'true); // 避免非法外部提交
            $content = str_replace('{pboot:sendsms}', Url::home('member/sendSms'), $content); // 發送短信
        else {
            session('sendsms'false);
        }
 
 
 
        $content = str_replace('{pboot:islogin}', session('pboot_uid') ? 1 : 0, $content); // 是否登錄
        if (strpos($content, '{pboot:mustlogin}') !== false) {
            $content = str_replace('{pboot:mustlogin}''', $content);
            if (! session('pboot_uid')) { // 沒有經登錄
                if ($this->config('login_no_wait')) {
                    location(Url::home('member/login'null"backurl=" . urlencode(get_current_url())));
                else {
                    error('您的權限不足,無法瀏覽本頁面!', Url::home('member/login'null"backurl=" . urlencode(get_current_url())));
                }
            }
        }
         
        $content = str_replace('{pboot:msgaction}', Url::home('message'), $content); // 留言提交路徑
        $content = str_replace('{pboot:scaction}', Url::home('search'), $content); // 搜索提交路徑
        $content = str_replace('{pboot:msgcodestatus}', $this->config('message_check_code') === '0' ? 0 : 1, $content); // 是否開留言啟驗證碼
        $content = str_replace('{pboot:formcodestatus}', $this->config('form_check_code') === '0' ? 0 : 1, $content); // 是否開啟表單驗證碼
         
        $content = str_replace('{pboot:checkcode}', CORE_DIR . '/code.php', $content); // 驗證碼路徑
        $content = str_replace('{pboot:lgpath}', Url::get('home/Do/area'), $content); // 多語言切換前置路徑,如{pboot:lgpath}?lg=cn
         
        $content = str_replace('{pboot:appid}', $this->config('api_appid'), $content); // API認證用戶
        $content = str_replace('{pboot:timestamp}', time(), $content); // 認證時間戳
        $content = str_replace('{pboot:signature}', md5(md5($this->config('api_appid') . $this->config('api_secret') . time())), $content); // API認證密鑰
         
        $content = str_replace('{pboot:httpurl}', get_http_url(), $content); // 當前訪問的域名地址
        $content = str_replace('{pboot:pageurl}', get_current_url(), $content); // 當前頁面的地址
         
        $content = str_replace('{pboot:registercodestatus}', $this->config('register_check_code') === '0' ? 0 : ($this->config('register_check_code') ?: 1), $content); // 是否開啟注冊驗證碼
        $content = str_replace('{pboot:logincodestatus}', $this->config('login_check_code') === '0' ? 0 : 1, $content); // 是否開啟評論驗證碼
        $content = str_replace('{pboot:commentcodestatus}', $this->config('comment_check_code') === '0' ? 0 : 1, $content); // 是否開啟評論驗證碼
        $content = str_replace('{pboot:commentaction}', Url::home('comment/add'null"contentid={content:id}"), $content); // 評論提交路徑
        $content = str_replace('{pboot:mycommentpage}', Url::home('comment/my'), $content); // 我的評論
         
        $content = str_replace('{pboot:registerstatus}', $this->config('register_status') === '0' ? 0 : 1, $content); // 是否開啟注冊
        $content = str_replace('{pboot:loginstatus}', $this->config('login_status') === '0' ? 0 : 1, $content); // 是否開啟登錄
        $content = str_replace('{pboot:commentstatus}', $this->config('comment_status') === '0' ? 0 : 1, $content); // 是否開啟評論
                                                                                                                     
        // 記錄蜘蛛爬行
        if ($this->config('spiderlog') !== '0') {
            if ($this->config('tpl_html_cache')) { // 緩存時插入script,否則直接執行
                $spidercode = "<script src='" . Url::home('Spider', null, 'url=' . URL) . "' async='async'></script>";
                $content = preg_replace('/(<\/body>)/i', $spidercode . "\n$1", $content);
            else {
                $spider = new SpiderController(URL);
                $spider->index();
            }
        }
         
        return $content;
    }

5:打開項目:template\default\html\member\register.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<div class="container pages">
 
    {include file=comm/position.html}
 
    <!-- 用戶注冊 -->
    <div class="row">
        <div class="col-lg-3"></div>
        <div class="col-12 col-lg-6">
            <form class="my-4" onsubmit="return register(this);">
                {pboot:if({pboot:registercodestatus}==3)}
                <div class="form-group">
                    <label for="username">手機號</label>
                    <input type="text" name="username" required id="username" onblur="isRegister()" class="form-control" placeholder="請輸入登錄賬號">
                    <div id="usernote"></div>
                </div>
                {else}
                <div class="form-group">
                    <label for="username">賬 號</label>
                    <input type="text" name="username" required id="username" onblur="isRegister()" class="form-control" placeholder="請輸入登錄賬號">
                    <div id="usernote"></div>
                </div>
                {/pboot:if}
 
                 
                <div class="form-group">
                    <label for="nickname">昵 稱</label>
                    <input type="text" name="nickname" required id="nickname" class="form-control" placeholder="請輸入賬號昵稱">
                </div>
                 
                <div class="form-group">
                    <label for="password">密 碼</label>
                    <input type="password" name="password" required id="password" class="form-control" placeholder="請輸入登錄密碼">
                </div>
                 
                <div class="form-group">
                    <label for="rpassword">確認密碼</label>
                    <input type="password" name="rpassword" required id="rpassword" class="form-control" placeholder="請再次輸入登錄密碼">
                </div>
                 
                {pboot:if({pboot:registercodestatus}==1)}
                <div class="form-group">
                    <label for="checkcode">驗證碼</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="請輸入驗證碼">
                        </div>
                        <div class="col-6">
                            <img title="點擊刷新" style="height:33px;" id="codeimg" src="{pboot:checkcode}" onclick="this.src='{pboot:checkcode}?'+Math.round(Math.random()*10);" />
                        </div>
                    </div>
                </div>
                {/pboot:if}
                 
                {pboot:if({pboot:registercodestatus}==2)}
                <div class="form-group">
                    <label for="checkcode">郵箱驗證碼</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="請輸入驗證碼">
                        </div>
                        <div class="col-6">
                            <span  class="btn btn-info mb-2" onclick="sendEmail();">發送</span>
                        </div>
                    </div>
                </div>
                {/pboot:if}
 
                {pboot:if({pboot:registercodestatus}==3)}
                <div class="form-group">
                    <label for="checkcode">手機驗證碼</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="請輸入驗證碼">
                        </div>
                        <div class="col-6">
                            <span  class="btn btn-info mb-2" onclick="sendSms();">發送</span>
                        </div>
                    </div>
                </div>
                {/pboot:if}
                <div class="form-group">
                   <button type="submit" class="btn btn-info mb-2">立即注冊</button>
                   <span class="text-secondary ml-3">已有賬號?<a href="{pboot:login}">馬上登錄</a></span>
                </div>
            </form>
        </div>
        <div class="col-lg-3"></div>
    </div> 
</div>

6:打開項目:apps\home\controller\MemberController.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
    public function sendSms()
    {
        $to = post('to');
 
        if ($this->config('register_check_code') != 3) {
            json(0, '發送失敗,后臺配置非短信驗證碼模式!');
        }
        if (! preg_match('/^1[0-9]{10}$/', $to)) {
            json(0, '賬號格式不正確,請輸入正確的手機號碼!');
        }
 
        if (! session('sendsms')) {
            json(0, '非法提交發送短信!');
        }
        if (time() - session('lastsendsms') < 60) {
            json(0, '您提交太頻繁了,請稍后再試!');
        }
 
        // 檢查手機注冊
        if ($this->model->checkUsername("usermobile='$to' OR username='$to'")) {
            json(0, '您輸入的手機號已被注冊!');
        }
        $rs = false;
        if ($to) {
            $code = create_code(4);
            session('checkcode', strtolower($code));
            $mail_body = "您的驗證碼為:" . $code;
            $rs = sendsms($this->config(), $to, $mail_body);
        }
        if ($rs === true) {
            session('lastsendsms', time()); // 記錄最后提交時間
            json(1, '發送成功!');
        else {
            json(0, '發送失敗,' . $rs);
        }
    }

7:打開項目:core\function\helper.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
function sendsms(array $config, $to, $content)
{
    $statusStr = array(
        "0" => "短信發送成功",
        "-1" => "參數不全",
        "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
        "30" => "密碼錯誤",
        "40" => "賬號不存在",
        "41" => "余額不足",
        "42" => "帳戶已過期",
        "43" => "IP地址限制",
        "50" => "內容含有敏感詞"
    );
    if (! $to || ! $content) {
        return false;
    }
 
    if ($config['sms_status'] == 0){
        alert_back('短信暫未開啟');
    }
 
    if (! isset($config['sms_status']) || ! isset($config['sms_pwd']) || ! isset($config['sms_signid'])) {
        alert_back('短信發送參數配置有誤');
    }
 
    $user = $config['sms_account'];
    $pass = md5($config['sms_pwd']);
    $content = "【" . $config['sms_signid'] . "】".$content;
    $phone = $to; // 替換空格
    $smsapi = ";
    $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
    $res =file_get_contents($sendurl) ;
     if ($res == 0) {
         return true;
        else {
         error('短信發送失敗,' . $statusStr[$res]);
     }
}

經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。進行測試發送:

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

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

開源插件

最新更新

電商類

CMS類

微信類

文章標簽