欧类av怡春院_久久久久成人网站_亚洲国产一区在线_免费在线观看污_97热在线精品视频在线观看_久久久久久色_涩涩涩999_免费不卡欧美自拍视频_亚洲精品国产无天堂网2021_中文字幕av专区_欧美成va人片在线观看_精品视频第一页


待發短信

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

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類

微信類

文章標簽
yjizz视频| 国产精品人妖ts系列视频| 亚洲一级在线播放| 97人妻精品一区二区三区视频| 91国在线视频| 日韩精品欧美成人高清一区二区| 麻豆国产精品视频| 成人av电影在线| 亚洲欧洲精品成人久久奇米网| 亚洲第一激情av| 91精品福利视频| 日韩精品一区二区三区在线| 国产一区二区三区在线免费观看| 俺去啦;欧美日韩| 欧美一区二三区| www日韩av| 国产日韩欧美大片| 国产视频手机在线播放| 熟妇高潮精品一区二区三区| 欧美国产日韩综合| 亚洲国产综合网| 床上的激情91.| 亚洲国产日韩在线一区模特| 日韩午夜激情电影| 欧美日韩第一页| 成人性生交大片免费观看嘿嘿视频 | 国产无遮挡呻吟娇喘视频| 国产美女免费看| 成人黄色av网站在线| 亚洲成av人片www| 国产丝袜一区视频在线观看 | 一区二区三区波多野结衣在线观看| 亚洲成av人片一区二区三区| 亚洲国产成人久久综合一区| 欧美最近摘花xxxx摘花| 久久精品国产一区二区三区不卡| 久久久999视频| 亚洲一区二区自偷自拍| 国产乱子伦精品无码码专区| 成人国产精品免费观看视频| 欧美午夜久久久| 一本色道久久综合狠狠躁篇怎么玩 | 久久精品中文字幕一区二区三区| 成人羞羞国产免费网站| 永久免费看mv网站入口| 天天爽夜夜爽夜夜爽| 国产欧美一区二区精品忘忧草| 制服丝袜激情欧洲亚洲| 91精品国产色综合久久不卡98口| 日韩电影免费观看在| 少妇愉情理伦片bd| 亚洲另类欧美日韩| www..com久久爱| 91麻豆精品国产91久久久久久 | 国产亚洲短视频| 日韩三级中文字幕| 国产精品久久久亚洲| www.中文字幕在线| 国产97免费视频| 看电视剧不卡顿的网站| 日本黄色一区二区| 日本电影亚洲天堂| 精品视频一区二区在线| 91精品国产乱码久久久张津瑜| 国产精品自拍毛片| 日韩欧美一区二区久久婷婷| 91系列在线播放| www.污污视频| 成人av免费播放| 亚洲超碰97人人做人人爱| 欧美国产日韩xxxxx| 粉嫩av一区二区三区天美传媒| 97人妻精品一区二区免费| 日本午夜一本久久久综合| 欧洲一区二区av| 国产欧美精品在线播放| 波多野结衣免费观看| 国产普通话bbwbbwbbw| 一区二区三区四区激情| 欧美国产日韩免费| 黄色一级一级片| 国产老妇伦国产熟女老妇视频| 亚洲精品中文字幕在线观看| 久久久久久久色| 欧美性久久久久| 在线免费av片| 午夜精品视频在线观看| 欧美一区二区三区免费视| 久草福利视频在线| 国产视频一区二区三| 欧美午夜片在线免费观看| 国产精品一区二区三区久久| 激情综合激情五月| 久国产精品韩国三级视频| 精品国内二区三区| 日韩精品久久久毛片一区二区| 三级全黄做爰视频| 国产偷国产偷亚洲高清人白洁| 久久久精品一区二区三区| 黄色成人在线看| 国产普通话bbwbbwbbw| 欧美影院精品一区| 日韩精品久久久| 亚洲天堂av片| 色呦呦网站一区| 麻豆传媒一区| 特级西西444www大精品视频免费看| 亚洲欧洲成人精品av97| 国产精品高潮呻吟久久av野狼| 岛国av免费观看| 国产不卡一区视频| 欧美日韩国产999| 污免费在线观看| 国产a久久麻豆| 免费99精品国产自在在线| 不卡的av中文字幕| 国产综合色产在线精品| 一区二区福利视频| 色噜噜狠狠永久免费| 久久成人综合网| 九色精品美女在线| 亚洲最大的黄色网| 国产精品国产三级国产三级人妇| 国产精品美女在线观看| 91视频青青草| 欧美午夜激情在线| 正在播放国产精品| 亚洲精品第五页| 中文字幕亚洲精品| 免费观看一区二区三区| 国产亚洲欧洲997久久综合| 国产噜噜噜噜噜久久久久久久久| 视频国产一区二区| 欧美丝袜美女中出在线| 综合色婷婷一区二区亚洲欧美国产| 在线观看免费视频a| 精品日本一线二线三线不卡| 无码日韩人妻精品久久蜜桃| 国产91精品久久久久久久网曝门| 国产成人avxxxxx在线看| 三级黄色录像视频| 欧美午夜一区二区三区| 欧美午夜小视频| 国内精品视频666| 欧美亚洲成人网| 精品无码m3u8在线观看| 欧美高清你懂得| 天天干天天干天天干天天干天天干| 成人免费精品视频| 国产欧美日本在线| 国产91绿帽单男绿奴| 色综合久久悠悠| 久草视频手机在线观看| 日韩一区二区三区免费观看| 日韩av在线中文| 中文字幕亚洲精品在线观看| 日韩一区不卡| 看片网站欧美日韩| 成人国产精品久久久| 久久久精品毛片| 在线午夜精品自拍| 成人信息集中地| 日韩欧美亚洲国产精品字幕久久久 | 九九久久久久久久久激情| 人人妻人人澡人人爽| 欧美日韩国产系列| 91在线第一页| 天天色综合成人网| 国产激情在线观看视频| 亚洲视频一区在线观看| 久久男人资源站| 99久久精品国产毛片| 美日韩免费视频| 美国毛片一区二区| 91观看网站| 香蕉视频黄色片| 国产精品午夜视频| 人妻精品无码一区二区| 国产精品精品视频一区二区三区| 国产精品视频第一页| 久久国产精品久久国产精品| 日本午夜精品理论片a级app发布| 亚洲图片在区色| 久久中文免费视频| 亚洲人成在线播放| 妺妺窝人体色www在线下载| 国产一区二区久久精品| 希岛爱理中文字幕| 中文字幕日韩视频| 日本少妇xxxx动漫| 久久久久久久久久av| 91国内精品久久久| 91久久国产精品| 美女脱光内衣内裤视频久久网站 | 日韩一区二区三区av| 天堂www中文在线资源| 欧美色综合久久| 国产中年熟女高潮大集合| 精品国产百合女同互慰| sm捆绑调教视频| 日韩少妇与小伙激情| 国产污视频网站| 国产成人涩涩涩视频在线观看| 性生活视频软件| 99影视tv| 92精品国产成人观看免费| 97在线免费视频观看| 一区二区三区精品在线| 手机在线播放av| 亚洲精品在线三区| 日韩精品视频播放| 国产91热爆ts人妖在线| 天堂资源在线中文精品| 欧美日韩一区二区三区在线视频 | 爱福利视频一区| 亚洲怡红院av| 亚洲综合在线做性| 99久精品国产| 欧美日韩怡红院| 日韩欧美一级精品久久| 国产在线综合网| 国产精品久久久久久久app| 久国产精品韩国三级视频| 中国一级黄色录像| 五月天欧美精品| 国产一区二区三区视频播放| 欧美激情一二区| 久久一区视频| 91精品国产91久久久久麻豆 主演| 日韩欧美亚洲国产一区| 国产极品国产极品| 国产精品久久久999| 99久久综合国产精品| 拔插拔插华人永久免费| 亚洲黄色成人网| www.五月婷| 亚洲小视频在线播放| 在线这里只有精品| 亚洲一区欧美在线| 国产精品久久精品国产| 亚洲精品成人悠悠色影视| 99久久久无码国产精品衣服| 青草热久免费精品视频| 久久综合九色综合97婷婷| 亚洲熟女一区二区三区| 久久久久久久久久久av| 国产精品一二三| 深夜做爰性大片蜜桃| 欧美日韩aaaa| 不卡电影一区二区三区| 台湾佬美性中文| 久久免费视频这里只有精品| 99久久免费国产| 性欧美丰满熟妇xxxx性久久久| 久久免费少妇高潮久久精品99| 成人午夜激情影院| av电影在线播放| 日本免费在线精品| 国产精品黄色在线观看| 欧美日韩在线视频免费播放| 国产精品国色综合久久| 色综合久久综合网欧美综合网| 亚洲精品男人天堂| 亚洲精品第一区二区三区| 91麻豆精品国产自产在线| 亚洲乱色熟女一区二区三区| 黄色免费视频大全| 久久精品国产综合| 26uuu色噜噜精品一区| 久久中文字幕精品| 91嫩草国产在线观看| 午夜视频一区二区三区| 男人天堂视频网| 一本久道高清无码视频| 亚洲午夜久久久影院| 国产成人免费视频一区| 91精品人妻一区二区三区蜜桃欧美| 国产精品久久久久9999| 亚洲电影在线免费观看| 亚洲一区 中文字幕| 三上悠亚久久精品| 欧美wwwxxxx| 综合久久久久久久| 一级黄色av片| 1024精品视频| 97国产精品免费视频| 亚洲欧美日韩小说| 一本色道久久综合精品婷婷| 九色在线视频观看| 国外成人性视频| 亚洲精品国久久99热| 中文字幕乱码视频| 91淫黄看大片| 国产精品福利无圣光在线一区| 欧美日韩亚洲高清| 婷婷在线免费视频| 激情综合丁香五月| 欧美中文娱乐网| 国产一区二区美女视频| 国产午夜亚洲精品午夜鲁丝片 | 午夜精品123| 欧美一级片免费| 中文字幕天堂网| 久久青青草综合| 中文字幕日韩有码| 一区二区三区四区中文字幕| 国产按摩一区二区三区| 日本泡妞xxxx免费视频软件| 久久av一区二区三区亚洲| 亚洲人成电影在线观看天堂色| 国产喷白浆一区二区三区| 国产成人无码av| 91精品国产色综合久久不8| 欧美一级在线看| 国产a一区二区| 国产99在线|中文| 欧美日韩精品一区| 国产一区免费观看| 亚洲视频欧美视频| 久久精品国产一区二区三区| 日韩国产一级片| 免费中文字幕在线观看| 久久草av在线| 亚洲一区二区三区国产| 91国产免费观看| 在线影视一区二区三区| 97久久精品人人澡人人爽缅北| 精品国产乱码久久久久久郑州公司| 800av在线免费观看| 国产乱了高清露脸对白| 黄色片免费网址| 男人的午夜天堂| 婷婷五月综合久久中文字幕| 欧美综合一区二区| 欧美在线日韩精品| 在线观看福利一区| 免费精品在线视频| 久久久久99精品国产片| 亚洲人成电影网站色…| 日韩中文第一页| 久久人人看视频| 国产日韩成人内射视频| 国产精品自拍电影| 狠狠色丁香久久婷婷综合_中| 91精品国产综合久久久久久久久久 | 欧美高清在线一区二区| 欧美在线免费观看亚洲| 中文字幕不卡在线视频极品| 神马影院我不卡午夜| 国产精品一区二区入口九绯色| 日韩av电影一区| 高跟丝袜欧美一区| 久久精品国产欧美亚洲人人爽| 97av自拍| 色哟哟精品观看| 疯狂做受xxxx欧美肥白少妇| 国产自产精品| 亚洲一区二区自偷自拍| av在线综合网| 久久久www成人免费精品| 国产又黄又猛又粗又爽的视频| 国产真人无遮挡作爱免费视频| 黄色aaa毛片| 精品国产一二三区| 色爽爽爽爽爽爽爽爽| av图片在线观看| 日韩日本欧美亚洲| 日韩大片免费在线观看| 欧美激情第1页| 国产情侣自拍小视频| 欧美成人手机在线| 高h视频免费观看| 亚洲国产精品va在线观看黑人| 日本手机在线视频| 中文区中文字幕免费看| 亚洲综合在线观看视频| 成人a免费视频| 黄色小视频在线免费看| 国产欧美一区二区在线| 精品不卡在线| 亚洲a视频在线| 在线观看三级视频欧美| 国产福利精品在线| 色一情一交一乱一区二区三区| 中文字幕在线不卡视频| 欧美日韩成人一区二区三区| 成人精品免费看| 国模极品一区二区三区| 日韩精品在线播放视频| 成人精品免费网站| 日韩久久在线| 中文一区一区三区高中清不卡| 久久爱av电影| 成人欧美精品一区二区| 中文字幕免费不卡在线| 亚洲国产精品女人| 国产不卡视频一区| 欧美一区少妇| 亚洲精品视频观看| 免费网站在线高清观看| 欧美在线视频网| 国产成人综合网| 亚洲一区二区蜜桃| 日韩精品资源二区在线| 国产午夜精品理论片| 亚洲国产精品网站| 亚洲自拍偷拍精品| 日韩午夜在线播放| jizzjizzxxxx| 欧美性大战久久久久久久蜜臀|