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


待發短信

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

4001-021-502

工作時間

9:00-21:00

LeCMS_V3.0.1新增短信寶短信接口

Lecms 是一款輕量級網站內容管理系統,簡潔精干。程序框架采用懶加載、分布式服務器的設計,每張表都可有自己的DB服務器群和CACHE服務器(群),單表能承受億級數據。內置多種SEO設置,對網站URL路徑設置自由度極高,可自由靈活設置網站的URL,讓你的網站在搜索引擎中獲得好的收錄排名。小編對他還是比較了解的,今天小編就以新增短信接口為例,給大家講解一下如何進行二次開發,我們今天講解的是v3.0.1版本,使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺的接口非常穩定,發送速度快,注冊就送測試短信,推薦大家使用
1:打開項目:admin\control\admin_control.class.php 新增短信設置路由

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        $menu['menuInfo']['setting'] = array(
            'title' => lang('setting'),
            'icon' => 'fa fa-cogs',
            'href' => '',
            'target' => '_self',
            'child' =>array(
                array('title' => lang('basic_setting'), 'href' => 'index.php?setting-index''icon' => 'fa fa-cog''target' => '_self'),
                array('title' => lang('seo_setting'), 'href' => 'index.php?setting-seo''icon' => 'fa fa-life-ring''target' => '_self'),
                array('title' => lang('link_setting'), 'href' => 'index.php?setting-link''icon' => 'fa fa-link''target' => '_self'),
                array('title' => lang('user_setting'), 'href' => 'index.php?setting-user''icon' => 'fa fa-user-circle''target' => '_self'),
                array('title' => lang('attach_setting'), 'href' => 'index.php?setting-attach''icon' => 'fa fa-paperclip''target' => '_self'),
                array('title' => lang('image_setting'), 'href' => 'index.php?setting-image''icon' => 'fa fa-file-image-o''target' => '_self'),
                array('title' => lang('comment_setting'), 'href' => 'index.php?setting-comment''icon' => 'fa fa-comments-o''target' => '_self'),
                array('title' => lang('email_setting'), 'href' => 'index.php?setting-email''icon' => 'fa fa-envelope''target' => '_self'),
                array('title' => '短信設置''href' => 'index.php?setting-sms''icon' => 'fa fa-envelope''target' => '_self'),
                array('title' => lang('other_setting'), 'href' => 'index.php?setting-other''icon' => 'fa fa-info''target' => '_self'),
            ),
        );

2:打開項目:admin\view\default 新增setting_sms.htm短信配置文件

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
{inc:header.htm}
<div class="layui-card">
    <div class="layui-card-header">短信設置</div>
    <div class="layui-card-body">
        <form id="form" class="layui-form" action="index.php?setting-sms-ajax-1" method="post">
            <div class="layui-form-item">
                <label class="layui-form-label required">短信開關</label>
                <div class="layui-input-block">
                    {$input[open_sms]}
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">短信寶賬號</label>
                <div class="layui-input-inline">
                    {$input[sms_user]}
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">短信寶密碼</label>
                <div class="layui-input-inline">
                    {$input[sms_pwd]}
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">短信寶簽名</label>
                <div class="layui-input-inline">
                    {$input[sms_sign]}
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">短信模板</label>
                <div class="layui-input-inline">
                    {$input[sms_template]}
                </div>
            </div>
 
            {hook:admin_setting_email_after.htm}
            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn" lay-submit lay-filter="form">{lang:submit}</button>
                </div>
            </div>
        </form>
    </div>
</div>
 
<script type="text/javascript">
    layui.use('form'function(){
        var form = layui.form;
 
        //監聽提交
        form.on('submit(form)'function(){
            adminAjax.submit("#form");
        });
    });
</script>
</body>
</html>

3:打開項目:\admin\control\setting_control.class.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
   //短信設置
    public function sms(){
        // hook admin_setting_control_email_before.php
        if(empty($_POST)) {
            version_compare(PHP_VERSION, '5.5.0''>') || $this->message(0, lang('php_version_5_5'), '', 1000);
 
            $cfg = $this->kv->xget('cfg');
            $input = array();
            $arr = array(1=>lang('open'), 0=>lang('close'));
            $input['open_sms'] = form::get_radio_layui('open_sms', $arr, $cfg['open_sms']);
            $input['sms_user'] = form::get_text('sms_user', $cfg['sms_user'], '''lay-verify="required"');
            $input['sms_pwd'] = form::get_password('sms_pwd', $cfg['sms_pwd'], '''lay-verify="required"');
            $input['sms_sign'] = form::get_text('sms_sign', $cfg['sms_sign'], '''lay-verify="required"');
            $input['sms_template'] = form::get_text('sms_template', $cfg['sms_template']);
 
            // hook admin_setting_control_email_after.php
 
            $this->assign('input', $input);
            $this->assign('cfg', $cfg);
            $this->display();
        }else{
            $this->kv->xset('open_sms', (int) R('open_sms''P'), 'cfg');
            $this->kv->xset('sms_user', R('sms_user''P'), 'cfg');
            $this->kv->xset('sms_pwd', R('sms_pwd''P'), 'cfg');
            $this->kv->xset('sms_sign', R('sms_sign''P'), 'cfg');
            $this->kv->xset('sms_template', R('sms_template''P'), 'cfg');
 
            // hook admin_setting_control_email_post_after.php
 
            $this->kv->save_changed();
            $this->runtime->delete('cfg');
 
            E(0, lang('edit_sucessfully'));
        }
    }

4:打開項目:\view\default\user\register.htm 注冊頁面添加手機驗證

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
            {if:$cfg[open_user_register_vcode]}
            <div class="form-group">
              <label for="vcode" class="col-sm-4 control-label">{lang:vcode}</label>
              <div class="col-sm-4">
                <input class="form-control" id="vcode" type="text" name="vcode" value="" placeholder="{lang:vcode}" autocomplete="off">
              </div>
              <div class="col-sm-4">
                <img src="index.php?user-vcode-name-registervcode.html" alt="{lang:vcode}" onclick="this.src='index.php?user-vcode-name-registervcode-r-'+Math.random();" id="vcodeimg" style="width: 100%;" />
              </div>
            </div>
            {/if}
 
            {if:$cfg[open_sms]}
            <div class="form-group">
              <label for="mobile" class="col-sm-4 control-label">手機號</label>
              <div class="col-sm-8">
                <input class="form-control" id="mobile" type="text" name="mobile" value="" placeholder="請輸入手機號" autocomplete="off">
              </div>
            </div>
            <div class="form-group">
              <label for="smscode" class="col-sm-4 control-label">短信驗證碼</label>
                <div class="col-sm-4">
                  <input class="form-control" id="smscode" type="text" name="smscode" value="" placeholder="短信驗證碼" autocomplete="off">
                </div>
                <div class="col-sm-4">
                  <input id="sendmobilecode" class="btn btn-primary btn-sm ml-3 " lay-submit lay-filter="sendSms" type="button" value="獲取驗證碼">
                </div>
            </div>
            {/if}
 
<script type="text/javascript">
    layui.use(['form'], function () {
      var form = layui.form, layer = layui.layer, $ = layui.$;
      form.on('submit(form)'function (data) {
        data = data.field;
        if (data.username == '') {
          layer.msg('{lang:please_input_username}', {icon: 5});
          return false;
        }else if (data.password == '') {
          layer.msg('{lang:please_input_password}', {icon: 5});
          return false;
        }else if (data.repassword == '') {
          layer.msg('{lang:please_input_confirm_password}', {icon: 5});
          return false;
        }else if (data.mobile == '') {
          layer.msg('請填寫手機號', {icon: 5});
          return false;
        }else if (data.smscode == '') {
          layer.msg('請填寫短信驗證碼', {icon: 5});
          return false;
        }
        else if(data.password != data.repassword){
          layer.msg('{lang:pwd_inconsistent}', {icon: 5});
          return false;
        }
        $.post("index.php?user-register-ajax-1",data,function(res){
          if(res.status){
            var icon = 1;
          }else{
            var icon = 5;
          }
          layer.msg(res.message, {icon: icon});
          if(res.status) setTimeout(function(){ location.href="{$_http_referer}"; }, 1000);
          return false;
        },'json');
        return false;
      });
      $('#sendmobilecode').on('click'function(){
        var mobile = $('#mobile').val()
        var vcode = $('#vcode').val()
        if (mobile == ''){
            layer.msg('請填寫手機號');
            return false;
        }
        $.post("index.php?user-sendsms-ajax-1",{mobile: mobile,vcode:vcode,type:1},function(res){
          if(res.status){
            var icon = 1;
          }else{
            var icon = 5;
          }
          layer.msg(res.message, {icon: icon});
          return false;
        },'json');
      });
    });
 
  </script>

5:打開項目:view\default\user 新增短信忘記密碼頁面

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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>{$cfg[titles]}</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
  <meta name="renderer" content="webkit">
  <link rel="shortcut icon" type="image/x-icon" href= "{$cfg[webdir]}favicon.ico" />
  <link rel="stylesheet" href="{$cfg[tpl]}user/css/frontend.min.css" media="all">
  <link rel="stylesheet" href="{$cfg[tpl]}user/css/user.css" media="all">
  <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
  <!--[if lt IE 9]>
  <script src="{$cfg[tpl]}user/js/html5shiv.js"></script>
  <script src="{$cfg[tpl]}user/js/respond.min.js"></script>
  <![endif]-->
  <script src="{$cfg[webdir]}static/js/jquery.js" charset="utf-8"></script>
</head>
<body>
<nav class="navbar navbar-white navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header-navbar">
        <span class="sr-only">{lang:toggle}</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="{$cfg[weburl]}">{$cfg[webname]}</a>
    </div>
    <div class="collapse navbar-collapse" id="header-navbar">
      <ul class="nav navbar-nav navbar-right">
        <li><a href="{$cfg[weburl]}" title="{$cfg[webname]}">{lang:home}</a></li>
      </ul>
    </div>
  </div>
</nav>
 
<main class="content">
  <div id="content-container" class="container">
    <div class="user-section login-section">
      <div class="logon-tab clearfix">
        <a class="active" title="{lang:forget_password}" rel="nofollow">{lang:forget_password}</a>{if:$cfg[open_user_login]}<a href="{$login_url}" title="{lang:login}" rel="nofollow">{lang:login}</a>{/if}
      </div>
      <div class="login-main">
        <form id="login-form" class="form-horizontal layui-form" action="index.php?user-forget.html" method="post">
          <input type="hidden" name="FORM_HASH" value="{$C[FORM_HASH]}" />
          <div class="form-group">
            <label for="username" class="col-sm-4 control-label">{lang:username}</label>
            <div class="col-sm-8">
              <input class="form-control" id="username" type="text" name="username" value="" placeholder="{lang:please_input_username}" autocomplete="off">
            </div>
          </div>
 
          <div class="form-group">
            <label for="mobile" class="col-sm-4 control-label">手機號</label>
            <div class="col-sm-8">
              <input class="form-control" id="mobile" type="text" name="mobile" value="" placeholder="請輸入手機號" autocomplete="off">
            </div>
          </div>
          <div class="form-group">
            <label for="smscode" class="col-sm-4 control-label">短信驗證碼</label>
            <div class="col-sm-4">
              <input class="form-control" id="smscode" type="text" name="smscode" value="" placeholder="短信驗證碼" autocomplete="off">
            </div>
            <div class="col-sm-4">
              <input id="sendmobilecode" class="btn btn-primary btn-sm ml-3 " lay-submit lay-filter="sendSms" type="button" value="獲取驗證碼">
            </div>
          </div>
 
          <div class="form-group">
            <label for="vcode" class="col-sm-4 control-label">{lang:vcode}</label>
            <div class="col-sm-4">
              <input class="form-control" id="vcode" type="text" name="vcode" value="" placeholder="{lang:vcode}" autocomplete="off">
            </div>
            <div class="col-sm-4">
              <img src="index.php?user-vcode-name-forgetvcode.html" alt="{lang:vcode}" onclick="this.src='index.php?user-vcode-name-forgetvcode-r-'+Math.random();" id="vcodeimg" style="width: 100%;" />
            </div>
          </div>
 
          <div class="form-group">
            <label for="password" class="col-sm-4 control-label">{lang:new_password}</label>
            <div class="col-sm-8">
              <input class="form-control" id="password" type="text" name="password" value="" placeholder="{lang:new_password}" autocomplete="off">
            </div>
          </div>
 
          <div class="form-group">
            <label for="repassword" class="col-sm-4 control-label">{lang:confirm_new_password}</label>
            <div class="col-sm-8">
              <input class="form-control" id="repassword" type="text" name="repassword" value="" placeholder="{lang:confirm_new_password}" autocomplete="off">
            </div>
          </div>
 
          <div class="form-group">
            <label class="col-sm-3 control-label"></label>
            <div class="col-sm-9">
            <button type="submit" class="btn btn-primary btn-lg btn-block" lay-submit lay-filter="form">提交</button>
            </div>
          </div>
          {hook:user_user_forget_after.htm}
        </form>
      </div>
    </div>
  </div>
</main>
 
<footer class="footer" style="clear:both">
  <p class="copyright">Copyright&nbsp;?&nbsp;{php}echo date('Y');{/php} {$cfg[webname]} All Rights Reserved.</p>
</footer>
<script src="{$cfg[webdir]}static/layui/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script type="text/javascript">
  layui.use(['form'], function () {
    var form = layui.form, layer = layui.layer, $ = layui.$;
    form.on('submit(form)'function (data) {
      data = data.field;
      if (data.username == '') {
        layer.msg('{lang:please_input_username}', {icon: 5});
        return false;
      }else if (data.mobile == '') {
        layer.msg('手機號為空', {icon: 5});
        return false;
      }else if (data.vcode == '') {
        layer.msg('{lang:vcode_no_empty}', {icon: 5});
        return false;
      }else{
        $.post("index.php?user-mobileforget-ajax-1",data,function(res){
          if(res.status){
            var icon = 1;
          }else{
            var icon = 5;
          }
          layer.msg(res.message, {icon: icon});
          if(res.status) setTimeout(function(){ location.href="{$_http_referer}"; }, 1000);
          return false;
        },'json');
        return false;
      }
    });
    $('#sendmobilecode').on('click'function(){
      var mobile = $('#mobile').val()
      var vcode = $('#vcode').val()
      if (mobile == ''){
        layer.msg('請填寫手機號');
        return false;
      }
      $.post("index.php?user-sendsms-ajax-1",{mobile: mobile,vcode:vcode,type:2},function(res){
        if(res.status){
          var icon = 1;
        }else{
          var icon = 5;
        }
        layer.msg(res.message, {icon: icon});
        return false;
      },'json');
    });
  });
</script>
</body>
</html>

6:打開項目:lecms\control\user_control.class.php 大概45行修改忘記密碼跳轉鏈接

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
    function __construct() {
        parent::__construct();
 
        $dis_action = array('login','register','forget','resetpwd');    //登錄后禁止訪問的action
        // hook user_control_construct_dis_action_after.php
 
        if( !isset($this->_cfg['open_user']) || empty($this->_cfg['open_user']) ){//未開啟用戶功能
            $this->message(0, lang('open_user_0'), $this->_cfg['weburl']);
        }elseif ( $this->_uid && in_array($_GET['action'], $dis_action)){
            $this->message(0, lang('logged'), $this->cms_content->user_url('index','my'));
        }
 
        //來路
        $this->_http_referer = user_http_referer(array(), $this->_cfg['weburl']);
        $this->assign('_http_referer', $this->_http_referer);
 
        //忘記密碼鏈接
        if (isset($this->_cfg['open_sms'])){
            $forget_pwd_url = $this->cms_content->user_url('mobileforget''user');
        }else{
            $forget_pwd_url = $this->cms_content->user_url('forget''user');
        }
        $this->assign('forget_pwd_url', $forget_pwd_url);
 
        // hook user_control_construct_after.php
    }

7:打開項目:lecms\control\user_control.class.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
   public function register() {
        if( !isset($this->_cfg['open_user_register']) || empty($this->_cfg['open_user_register']) ){
            $this->message(0, lang('register_close'), $this->_cfg['weburl']);
        }
 
        if(empty($_POST)) {
            $this->_cfg['titles'] = lang('register').'_'.$this->_cfg['webname'];
            $this->_var['topcid'] = -1;
            $this->assign('cfg', $this->_cfg);
            $this->assign('cfg_var', $this->_var);
 
            // hook user_control_register_after.php
 
            $GLOBALS['run'] = &$this;
            $_ENV['_theme'] = &$this->_cfg['theme'];
            $this->display('user/register.htm');
        }elseif(form_submit()) {
            // hook user_control_register_post_before.php
 
            $user = &$this->user;
            $username = R('username''P');
            $password = R('password''P');
            $repassword = R('repassword''P');
 
            if($message = $user->check_username($username)) {
                $this->message(0, $message);
            }elseif($message = $user->check_password($password)){
                $this->message(0, $message);
            }elseif ($password != $repassword){
                $this->message(0, lang('pwd_inconsistent'));
            }
 
            //開啟了注冊驗證碼
            if( !empty($this->_cfg['open_user_register_vcode']) ){
                $vcode = R('vcode''P');
                empty($vcode) && $this->message(0, lang('vcode_no_empty'));
 
                if($vcode != _SESSION('registervcode')){
                    $this->message(0, lang('vcode_error'));
                }
            }
 
            //開啟了短信驗證碼
            if (!empty($this->_cfg['open_sms'])){
                $sess_mobile = _SESSION('user_create_mobile');
                $sess_code = _SESSION('user_create_code');
                $mobile = R('mobile''P');
                $smscode = R('smscode''P');
                if(!preg_match('/^1[3-9]\d{9}$/', $mobile)){
                    $this->message(0, '手機號有誤');
                }
                if (empty($sess_code))  $this->message(0, '請點擊獲取驗證碼');
                if (empty($sess_mobile))  $this->message(0, '請點擊獲取驗證碼');
                if ($mobile != $sess_mobile)  $this->message(0, lang('驗證碼不正確'));
                if ($smscode != $sess_code)  $this->message(0, lang('驗證碼不正確'));
            }
            // hook user_control_register_post_check_after.php
 
            if($user->get_user_by_username($username)){
                $this->message(0, lang('username_is_exists'));
            }
 
            $salt = random(16, 3, '0123456789abcdefghijklmnopqrstuvwxyz'); // 增加破解難度
            $password = md5(md5($password).$salt);
            $ip = ip2long($_ENV['_ip']);
            $data = array(
                'username'=>$username,
                'password'=>$password,
                'salt'=>$salt,
                'groupid'=>11,  //注冊用戶
                'author'=>$username,
                'regip'=>$ip,
                'regdate'=>$_ENV['_time'],
                'mobile'=>isset($mobile) ? $mobile : '',
            );
            // hook user_control_register_post_data_after.php
 
            $uid = $user->create($data);
            if($uid){
                // hook user_control_register_post_create_success_after.php
                // 寫入 cookie
                $userauth = str_auth("$uid\t$data[username]\t$data[password]\t$data[groupid]"'ENCODE');
                _setcookie('userauth', $userauth, 0, ''''falsetrue);
 
                // 更新登錄信息
                $updata['uid'] = $uid;
                $updata['loginip'] = ip2long($ip);
                $updata['logindate'] = $_ENV['_time'];
                $updata['logins'] = 1;
                $user->update($updata);
 
                $this->message(1, lang('register_successfully'), $this->_http_referer);
            }else{
                $this->message(0, lang('register_failed'));
            }
        }else{
            $this->message(0, lang('form_invalid'));
        }
    }

8:當前項目下新增短信發送

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
    public function sendsms(){
        if (!$_POST){
            $this->message(0, 'error');
        }
        if (isset($_SESSION['countdown']) && time()<($_SESSION['countdown']+60)) {
            $this->message(0, '請求頻繁');
        }
        $mobile = R('mobile','P');
        if (empty($this->_cfg['open_sms'])){
            $this->message(0, '短信未開啟');
        }
        if (!preg_match('/^1[3-9]\d{9}$/', $mobile)) {
            $this->message(0, '手機號錯誤');
        }
        //應該都請求
        if( !empty($this->_cfg['open_user_register_vcode']) ){
            $vcode = R('vcode''P');
            empty($vcode) && $this->message(0, lang('vcode_no_empty'));
            $key = (R('type','P')==1)? 'registervcode' 'forgetvcode';
            if($vcode != _SESSION($key)){
                $this->message(0, lang('vcode_error'));
            }
        }
        $code = rand(100000, 999999);
        $_SESSION['user_create_mobile'] = $mobile;
        $_SESSION['user_create_code'] = $code;
        $statusStr = array(
            "0" => "短信發送成功",
            "-1" => "參數不全",
            "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
            "30" => "密碼錯誤",
            "40" => "賬號不存在",
            "41" => "余額不足",
            "42" => "帳戶已過期",
            "43" => "IP地址限制",
            "50" => "內容含有敏感詞"
        );
        $smsapi = ";
        $user = $this->_cfg['sms_user']; //短信平臺帳號
        $pass = md5($this->_cfg['sms_pwd']); //短信平臺密碼
        $content= '【'.$this->_cfg['sms_sign'].'】'.str_replace('{$code}',$code,$this->_cfg['sms_template']);//要發送的短信內容
        $phone = $mobile;//要發送短信的手機號碼
        $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result =file_get_contents($sendurl) ;
        if ('0' === $result) {
            $_SESSION['countdown'] = time();
            $this->message(1, '發送成功');
        else {
            $this->message(0, '發送失敗'.$statusStr[$result]);
        }
    }

9:當前項目下新增手機號找回密碼

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
 //手機號找回密碼
    public function mobileforget(){
        if( !isset($this->_cfg['open_user_reset_password']) || empty($this->_cfg['open_user_reset_password'])){
            $this->message(0, lang('password_recovery_disabled'));
        }elseif(empty($this->_cfg['open_sms']) ){
            $this->message(0, '短信未開啟');
        }
        if(empty($_POST)) {
            $this->_cfg['titles'] = lang('forget_password').'_'.$this->_cfg['webname'];
            $this->_var['topcid'] = -1;
 
            $this->assign('cfg', $this->_cfg);
            $this->assign('cfg_var', $this->_var);
 
            // hook user_control_forget_after.php
 
            $GLOBALS['run'] = &$this;
            $_ENV['_theme'] = &$this->_cfg['theme'];
            $this->display('user/mobile_forget_password.htm');
        }
        else{
            $username = R('username''P');
            $mobile = R('mobile''P');
            $vcode = R('vcode''P');
 
            // hook user_control_forget_post_data_after.php
 
            if(empty($username) || empty($mobile) || empty($vcode)){
                $this->message(0, '用戶名和驗證碼和手機號都不能為空');
            }
 
            if (!preg_match('/^1[3-9]\d{9}$/', $mobile)) {
                $this->message(0, '手機號錯誤');
            }
 
            if($vcode != _SESSION('forgetvcode')){
                $this->message(0, lang('vcode_error'));
            }
 
            $data = $this->user->get_user_by_username($username);
            if( empty($data) ){
                $this->message(0, lang('no_this_user'));
            }else{
                if( $data['mobile'] != $mobile){
                    $this->message(0, lang('該用戶沒有綁定手機號或者手機號錯誤'));
                }
                $sess_mobile = _SESSION('user_create_mobile');
                $sess_code = _SESSION('user_create_code');
                $mobile = R('mobile''P');
                $smscode = R('smscode''P');
                $password = R('password''P');
                $repassword = R('repassword''P');
                if (empty($sess_code))  $this->message(0, '請點擊獲取驗證碼');
                if (empty($sess_mobile))  $this->message(0, '請點擊獲取驗證碼');
                if ($mobile != $sess_mobile)  $this->message(0, lang('驗證碼不正確'));
                if ($smscode != $sess_code)  $this->message(0, lang('驗證碼不正確'));
                $user = &$this->user;
                if($message = $user->check_username($username)) {
                    $this->message(0, $message);
                }elseif($message = $user->check_password($password)){
                    $this->message(0, $message);
                }elseif ($password != $repassword){
                    $this->message(0, lang('pwd_inconsistent'));
                }
                $salt = random(16, 3, '0123456789abcdefghijklmnopqrstuvwxyz'); // 增加破解難度
                $password = md5(md5($password).$salt);
                $updata = array(
                    'uid'=>$data['uid'],
                    'password'=>$password,
                    'salt'=>$salt
                );
                if( $user->update($updata) ){
                    $this->message(1, lang('reset_password_successfully'));
                }else{
                    $this->message(0, lang('reset_password_failed'));
                }
            }
        }
    }

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

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

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

開源插件

最新更新

電商類

CMS類

微信類

文章標簽
91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国
色婷婷av久久久久久久| 亚洲精品写真福利| 成人综合婷婷国产精品久久免费| 亚洲一级二级三级在线免费观看| 国产精品久久久久久久午夜片| 久久噜噜亚洲综合| 亚洲精品一区二区三区99| 日韩欧美国产综合一区| 日韩亚洲欧美在线观看| 91精品国产欧美一区二区18| 91精品综合久久久久久| 欧美高清www午色夜在线视频| 欧美裸体bbwbbwbbw| 欧美妇女性影城| 欧美一级片在线| 精品国精品国产| 国产午夜一区二区三区| 欧美精彩视频一区二区三区| 国产精品久久久久三级| 亚洲精品第1页| 日本强好片久久久久久aaa| 日本一区中文字幕| 国产成人综合在线| 色婷婷久久综合| 欧美一区二区在线不卡| 久久久久久久久一| 亚洲欧美一区二区三区极速播放| 亚洲国产裸拍裸体视频在线观看乱了| 视频一区中文字幕| 国产成人在线视频网站| 99国产一区二区三精品乱码| 欧美日韩一区在线| 精品精品欲导航| 亚洲欧洲精品一区二区精品久久久 | 国产欧美日韩在线看| 国产午夜精品一区二区三区嫩草 | 自拍偷拍国产亚洲| 成人av高清在线| 国产精品久久久久久久第一福利| 久久精品久久99精品久久| 日韩精品一区二区三区中文不卡 | 国产亚洲制服色| 国产不卡视频一区| 国产精品素人一区二区| 成人app网站| 一区二区三区在线看| 欧美日韩日日夜夜| 日本不卡视频在线观看| 精品电影一区二区| 国产高清不卡二三区| 国产精品久久久久久福利一牛影视| 成人精品视频一区| 亚洲欧美激情在线| 欧美肥妇毛茸茸| 免费在线观看不卡| 91精品国产91久久久久久一区二区| 日本亚洲免费观看| 国产亚洲一区二区三区四区| 北条麻妃国产九九精品视频| 亚洲人成精品久久久久久| 欧美日韩不卡一区二区| 久久不见久久见免费视频1| 久久综合久久99| 国产九九视频一区二区三区| 国产精品久久久久久久久图文区| 粉嫩在线一区二区三区视频| 亚洲欧美激情插 | 五月开心婷婷久久| 制服丝袜中文字幕一区| 国产一区二区女| 综合久久一区二区三区| 欧美日韩国产一二三| 久久99久久99| 亚洲欧美中日韩| 精品视频资源站| 国产二区国产一区在线观看| 一区二区欧美视频| 91精品国产欧美一区二区成人| 国产高清无密码一区二区三区| 亚洲精品高清视频在线观看| 欧美一二三在线| 国产河南妇女毛片精品久久久| 亚洲永久精品大片| 日韩美女一区二区三区四区| av激情亚洲男人天堂| 秋霞国产午夜精品免费视频| 久久久噜噜噜久久人人看| 在线观看av一区二区| 国产白丝精品91爽爽久久| 午夜视频一区二区| 国产精品色噜噜| 欧美剧情电影在线观看完整版免费励志电影 | 欧美一级xxx| 99国产精品久久久久久久久久| 琪琪久久久久日韩精品| 国产精品剧情在线亚洲| 日韩无一区二区| 欧美午夜精品电影| 国产福利精品一区| 五月开心婷婷久久| 亚洲欧美国产高清| 国产精品视频麻豆| 精品欧美一区二区在线观看| 91婷婷韩国欧美一区二区| 国产美女精品人人做人人爽| 奇米精品一区二区三区在线观看 | 777亚洲妇女| 欧美综合欧美视频| 成人激情午夜影院| 国产福利精品一区| 韩国欧美一区二区| 奇米在线7777在线精品| 日韩国产欧美在线播放| 亚洲国产一区二区三区| 亚洲黄色录像片| 亚洲欧美日韩国产手机在线| 欧美国产精品劲爆| 中文字幕五月欧美| 777精品伊人久久久久大香线蕉| 国产成人精品亚洲午夜麻豆| 美国十次综合导航| 日韩不卡一区二区| 午夜免费久久看| 亚洲自拍都市欧美小说| 亚洲欧美综合网| 自拍偷拍亚洲激情| 最新欧美精品一区二区三区| 国产精品高清亚洲| 国产精品三级av| 国产精品免费久久久久| 中文字幕不卡一区| 国产精品久久777777| 国产精品久久久久一区| 国产精品卡一卡二| 成人欧美一区二区三区| 国产精品久久久久久户外露出| 99riav久久精品riav| 成人影视亚洲图片在线| 东方aⅴ免费观看久久av| 高清不卡一区二区在线| 成人午夜av电影| 91年精品国产| 欧美日韩在线播放一区| 日韩视频一区在线观看| 久久综合精品国产一区二区三区| 亚洲精品一区二区三区蜜桃下载| 国产亚洲婷婷免费| 亚洲天堂精品视频| 亚洲成av人片www| 久久99最新地址| 成人手机在线视频| 在线观看不卡视频| 日韩精品一区在线| 日本一区二区三区dvd视频在线| 国产精品高潮久久久久无| 夜夜爽夜夜爽精品视频| 奇米影视在线99精品| 国产v日产∨综合v精品视频| 99v久久综合狠狠综合久久| 精品视频免费在线| 精品乱码亚洲一区二区不卡| 国产精品婷婷午夜在线观看| 亚洲一级片在线观看| 激情小说欧美图片| 色猫猫国产区一区二在线视频| 欧美三电影在线| 久久久久久久久久美女| 日韩精品中文字幕一区二区三区 | 国内精品在线播放| av一本久道久久综合久久鬼色| 舔着乳尖日韩一区| 成人理论电影网| 欧美理论电影在线| 国产精品美女一区二区在线观看| 午夜精品福利一区二区蜜股av | 久久综合久久综合久久| 日韩伦理免费电影| 奇米影视7777精品一区二区| 91视视频在线观看入口直接观看www | av一区二区不卡| 欧美成人伊人久久综合网| 18欧美乱大交hd1984| 国产亚洲精品aa| 午夜一区二区三区视频| 东方aⅴ免费观看久久av| 欧美午夜理伦三级在线观看| 国产午夜亚洲精品羞羞网站| 日韩电影免费在线观看网站| 99久久婷婷国产综合精品电影 | 韩日av一区二区| 欧美少妇bbb| 国产精品卡一卡二卡三| 久久精品国产亚洲一区二区三区| 极品尤物av久久免费看| 欧美日本在线看| 亚洲欧美偷拍卡通变态| 国产精品一区免费视频| 欧美一三区三区四区免费在线看 | 一区二区三区产品免费精品久久75| 国产资源精品在线观看|