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


待發短信

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

4001-021-502

工作時間

9:00-21:00

LecmsV3.0.3新增短信寶短信接口

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

開源插件

最新更新

電商類

CMS類

微信類

文章標簽
99riav久久精品riav| 成人欧美一区二区三区视频xxx| 日韩在线视频免费播放| 国产精品三级在线| 亚洲国产成人porn| aaa国产视频| 国产精品秘入口18禁麻豆免会员| 国产一区二区三区视频免费| 国产高清视频一区| 亚洲av毛片基地| av一区二区三区在线观看| 色拍拍在线精品视频8848| 亚洲精品一区二区三区不卡| 日韩人妻精品无码一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 亚洲视频在线观看三级| 91在线看视频| 国产精品一区二区不卡视频| 欧美在线不卡一区| 狠狠色综合日日| 岛国大片在线免费观看| 2024亚洲男人天堂| 色综合天天视频在线观看| 中文字幕中文字幕99| 亚洲欧洲av色图| 亚洲av无码不卡| 日韩 欧美 综合| 亚洲高潮无码久久| 92看片淫黄大片欧美看国产片| 欧美日韩精品一区二区三区四区 | 91精品欧美一区二区三区综合在| 亚洲乱码一区av黑人高潮| 91网站在线看| 三级黄色片免费观看| 视频一区在线免费观看| 亚洲精品中文字幕av| 噜噜噜在线视频| 久久影视电视剧免费网站清宫辞电视| 国产亚洲综合av| 中文字幕一区二区三区波野结 | 国产精品电影网| 欧美性受极品xxxx喷水| 欧亚乱熟女一区二区在线| 日韩av中文字幕在线| 欧美色播在线播放| 国产精品欧美一区二区三区| 国产精品另类一区| av中文字幕亚洲| 亚洲一区影音先锋| 久久琪琪电影院| 麻豆传媒一区| 国产在线青青草| 久久久国产高清| 免费一级片91| 精品福利一区二区三区| 欧美另类高清videos| 亚洲国产精品一区二区久久恐怖片| 欧美精品一区二区三区高清aⅴ| 在线播放精品一区二区三区 | 日韩性感在线| 婷婷久久综合网| 成人性生交大片| 久久精品国产2020观看福利| 亚洲啪啪av| 91人妻一区二区三区蜜臀| 亚洲色图 校园春色| 国产精品伊人色| av中文字幕亚洲| 欧美无砖专区一中文字| 久久久久中文字幕| 欧美午夜视频在线| 日本美女久久久| 少妇高清精品毛片在线视频 | 国产福利精品av综合导导航| 久久久久久久免费| 特色特色大片在线| 色噜噜噜噜噜噜| 麻豆精品视频在线观看| 黄色片一区二区三区| 成人精品视频一区二区三区尤物| 91成人看片片| 国产精品中文在线| 久久久久久久无码| 偷拍日韩校园综合在线| 欧美一区二区视频17c| 亚洲av无码乱码国产麻豆| 欧美二区在线观看| 日产精品久久久久久久蜜臀| 天堂网中文字幕| 日本视频免费一区| 国产精品伦理在线| 中文字幕免费精品一区高清| 久久人人97超碰人人澡爱香蕉| 亚洲欧美天堂在线| 国产欧美精品一区二区三区| 国产精品成人观看视频国产奇米| 国产成人亚洲综合无码| 天堂在线资源8| 另类天堂视频在线观看| 日本一二三区视频在线| 天天操狠狠操夜夜操| 内射一区二区三区| 久久国产视频精品| 麻豆国产欧美一区二区三区| 欧美午夜片在线观看| 国产91精品久久久久久久| 中文乱码人妻一区二区三区视频| 亚洲欧美激情一区二区| 91精品国产综合久久男男| 手机在线免费看毛片| 蓝色福利精品导航| 欧美日韩一级片网站| 在线中文字幕日韩| 美国av在线播放| 91禁男男在线观看| 精人妻无码一区二区三区| 国产精品爽爽久久| 国产精品初高中害羞小美女文| 成人黄色中文字幕| 青青草av在线播放| 久久久精品蜜桃| 久久久精品日本| 99热亚洲精品| 中文资源在线播放| 人妻无码一区二区三区久久99| 欧美日韩中国免费专区在线看| av噜噜色噜噜久久| 精品久久久中文字幕人妻| 国产视频久久久久| 在线观看免费污视频| 综合久久国产九一剧情麻豆| 免费在线观看污污视频| 午夜精品免费观看| 午夜私人影院久久久久| 久久久亚洲天堂| 88av在线播放| 成av人片一区二区| 日韩亚洲精品电影| 亚洲精品视频在线观看网站| 都市激情亚洲色图| 日韩欧美国产一区二区三区| 精品毛片乱码1区2区3区| 亚洲区免费影片| 国产免费一区视频观看免费| 色女孩综合网| 老司机午夜性大片| 免费黄色片网站| 欧美成人一区二区视频| 久久国产精品99久久人人澡| 久久综合久久鬼色中文字| 日韩欧美在线视频日韩欧美在线视频| 精品国产1区二区| 欧美大片va欧美在线播放| 91美女片黄在线观| 9色porny| 国产白袜脚足j棉袜在线观看| 91麻豆精品成人一区二区| 香蕉影院在线观看| 中文字幕人妻一区二区三区视频| 高清毛片aaaaaaaaa片| 国产99久久久久| 欧美性猛交xxxx乱大交极品| 丝袜美腿精品国产二区| 国产日韩在线视频| 久章草在线视频| 最新日韩免费视频| 四虎在线视频免费观看| 中文字幕一区在线观看视频| 国产一区二区在线免费| 中文字幕无码人妻少妇免费| 久久久午夜精品| 久久人人九九| 亚洲性图第一页| 91女神在线视频| 国产精品theporn88| 中文在线最新版天堂| 日韩午夜在线播放| 一卡二卡三卡四卡五卡| 久久综合久久鬼色中文字| 亚洲跨种族黑人xxx| 国产3p露脸普通话对白| 天堂va蜜桃一区二区三区漫画版| 欧美欧美午夜aⅴ在线观看| 高清视频在线观看一区| 欧产日产国产69| 国产成人拍精品视频午夜网站| 国产视频一区二区三| 日韩欧美国产一区在线观看| www.日本在线播放| 国产亚洲一本大道中文在线| 在线影视一区二区三区| av日韩一区二区三区| 亚洲AV无码一区二区三区少妇 | 视频一区三区| 巨胸大乳www视频免费观看| 午夜美女福利视频| 婷婷综合另类小说色区| 国产mv久久久| 国产午夜在线一区二区三区| 国产乱叫456在线| 国产精品国产a| 国产精品福利久久久| 国产在线拍揄自揄拍| 97国产一区二区| 久久人人爽人人爽爽久久| 国产免费一区二区视频| 久久久精品视频网站| 亚洲一二三四区不卡| 成人av电影天堂| 国产精品国产三级国产专业不 | 超碰caoprom| 天堂在线资源网| 日韩欧美国产精品| 欧美黄网在线观看| 精品少妇爆乳无码av无码专区| 91色综合久久久久婷婷| 欧美大片免费看| 中文字幕亚洲影院| 老司机精品视频导航| 国产亚洲人成a一在线v站| 成人区一区二区| 国产ts变态重口人妖hd| 精品国产乱码久久久久久免费| 在线观看三级网站| 天堂网2014av| 国产亚洲激情视频在线| 麻豆av免费看| 国产超碰在线一区| 欧美精品aaa| 中文字幕22页| 亚洲免费黄色片| 正在播放一区二区| 久久这里只有精品8| 香蕉视频网站在线| 久久精品亚洲94久久精品| www.色.com| 91在线码无精品| 久久艹在线视频| 搜索黄色一级片| 狠狠久久亚洲欧美专区| 亚洲春色在线视频| 国产在线精品视频| 最近2019年好看中文字幕视频| 99色精品视频| jlzzjlzz国产精品久久| 国产精品丝袜高跟| 欧美一区二区激情视频| 日韩一区二区三区三四区视频在线观看| 奇米影视亚洲色图| 国产91丝袜在线观看| 欧美在线影院在线视频| 99成人在线观看| 欧美日韩你懂的| jizzjizzxxxx| 国产欧美日韩麻豆91| 国产亚洲精品自在久久| 国产又大又长又粗| 精品国产欧美一区二区三区成人 | 日韩一区精品字幕| 久久精品中文字幕免费mv| 国产日韩精品中文字无码| 欧美影院一区二区| aa视频在线播放| 成人午夜又粗又硬又大| 91人人爽人人爽人人精88v| 国产精品一区二区黑人巨大| 深夜福利亚洲导航| 美国一级片在线观看| 欧美日韩中文字幕在线视频| 日本a在线免费观看| 99综合电影在线视频| 国产综合第一页| 轻轻草成人在线| 日本一区二区三区在线播放| 五月婷婷激情视频| 九九久久综合网站| 亚洲天堂一二三| 欧美大学生性色视频| 一级片免费观看视频| 在线日韩欧美视频| 国产在线免费av| 欧美麻豆精品久久久久久| 被黑人猛躁10次高潮视频| 亚洲国产中文字幕| 欧美精品久久久久久久久25p| 亚洲主播在线观看| 妖精视频在线观看| 欧美另类变人与禽xxxxx| 国产极品一区二区| 精品国产麻豆免费人成网站| 永久免费毛片在线观看| 精品欧美一区二区在线观看| 亚洲天堂av网站| 在线成人高清不卡| 亚洲天堂一级片| 亚洲精品色婷婷福利天堂| 88久久精品无码一区二区毛片| 精品对白一区国产伦| 午夜爱爱毛片xxxx视频免费看| 国产亚洲一区二区在线| 无码人妻精品一区二区| 九九热这里只有精品免费看| 亚洲国产精品无码久久| 欧美色网站导航| 久久99热精品| 成人午夜视频一区二区播放| 51国偷自产一区二区三区| 天天综合色天天综合| 视频一区二区三区在线| 久草免费资源站| 91精品久久香蕉国产线看观看| 欧美日韩国产bt| 日韩乱码一区二区| 国产精品福利视频| 亚洲成av人片一区二区三区| 无码无套少妇毛多18pxxxx| 日韩一级片免费视频| 久久中文字幕国产| 国产一区二区不卡在线| www成人免费| 欧美日韩国产在线观看| 国产综合成人久久大片91| 黄瓜视频在线免费观看| 国产a级片视频| 久久人人九九| 欧美大片在线观看| 国产精选一区二区三区| 日本老熟俱乐部h0930| 18禁男女爽爽爽午夜网站免费| 日韩欧美在线国产| 久久精品国产99久久6| 鲁丝一区二区三区| 欧美日韩国产免费一区二区三区 | 国产精品久久久久久久久毛片 | 资源网第一页久久久| 成人h视频在线| 久久久国产在线视频| 欧美日韩在线视频一区| 国产精品老熟女视频一区二区| 国产伦精品一区二区免费| 欧美做受高潮电影o| 色老汉一区二区三区| 麻豆精品一区二区综合av| 欧美 日本 国产| 国产成人三级视频| 国产精品久久久久秋霞鲁丝| 欧美日韩另类一区| 日韩国产在线一| 欧美成人精品激情在线视频| 欧美黄网站在线观看| 伊人久久av导航| 国产精品综合久久久| 欧美丰满老妇厨房牲生活| 国产日韩亚洲欧美综合| 亚洲欧美日韩免费| 成人信息集中地| 五月婷婷六月丁香激情| 日本精品一区二区| 91激情五月电影| 成人毛片老司机大片| а√中文在线资源库| 精品无人区无码乱码毛片国产| 最近2019年好看中文字幕视频| 久久精品国产亚洲高清剧情介绍| 亚洲77777| 欧美激情精品在线| 欧美国产日韩精品免费观看| 亚洲精品国产一区黑色丝袜| 国产日韩欧美自拍| 色综合久久天天| 视频一区中文字幕| 久久激情免费视频| 西西44rtwww国产精品| 久久精品第一页| 日韩手机在线观看| 伊人久久久久久久久久久久| 国产又粗又黄又爽| 国模私拍视频在线| 99久久国产热无码精品免费| 国产伦精品一区二区三区免.费| 国产免费黄色片| 日本三级片在线观看| 老司机午夜性大片| cao在线观看| 国产精品久久久久久影视| 欧美亚洲国产另类| 中文字幕精品视频| 日韩欧美一区二区视频| 欧美视频在线观看 亚洲欧| 国产精品久久久久影院色老大| 轻轻草成人在线| 国产真人真事毛片视频| 在线视频观看一区二区| 国产日本在线播放| 中文字幕在线亚洲三区| 欧美在线播放一区| 美乳视频一区二区| 亚洲欧美电影在线观看| 热门国产精品亚洲第一区在线| 色综合伊人色综合网| 亚洲图片欧美日产| 亚洲变态欧美另类捆绑| 亚洲国产精品网站| 91福利国产精品| 美女视频网站黄色亚洲| 国产精品无码一区二区桃花视频| 国产乱码精品一区二三区蜜臂 | 亚洲性生活视频| 亚洲精选中文字幕| 伊人久久五月天|