待发短信

在线客服
产品支持 短信宝客服
合作渠道 渠道合作
服务咨询

4001-021-502

工作时间

9:00-21:00

PbootCMS_V3.2.0新增短信宝短信接口

PbootCMS是全新内核且永久开源免费的PHP企业网站开发建设管理系统,是一套高效、简洁、 强悍的可免费商用的PHP CMS源码,能够满足各类企业网站开发建设的需要。系统采用简单到想哭的模板标签,只要懂HTML就可快速开发企业网站。小编对他还是比较了解的,今天小编就以新增短信接口为例,给大家讲解一下如何进行二次开发,我们今天讲解的是v3.2.0版本,使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台的接口非常稳定,发送速度快,注册就送测试短信,推荐大家使用
1:打开项目:apps\admin\view\default\system\config.html 增加短信配置页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
        <ul class="layui-tab-title">
            <li class="layui-this" lay-id="t1">基本配置</li>
            <li  lay-id="t2">邮件通知</li>
            <li  lay-id="t3">百度接口</li>
            <li  lay-id="t4">WebAPI</li>
            <li  lay-id="t5">图片水印</li>
            <li  lay-id="t6">安全配置</li>
            <li  lay-id="t7">URL规则</li>
            <li  lay-id="t8">标题样式</li>
            <li  lay-id="t9">会员配置</li>
            <li  lay-id="t10">短信配置</li>
        </ul>
<div class="layui-tab-item">
                <form action="{url./admin/Config/index}" method="post" class="layui-form">
                    <input type="hidden" name="formcheck" value="{$formcheck}" >
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">是否开启</label>
                        <div class="layui-input-block">
                            <input type="radio" name="sms_status" value="1" {if([$configs.sms_status.value]==1)} checked="checked" {/if} title="是">
                            <input type="radio" name="sms_status" value="0" {if([$configs.sms_status.value]==0)} checked="checked" {/if} title="否">
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label">短信宝账号</label>
                        <div class="layui-input-inline">
                            <input type="text" name="sms_account"  value="{$configs.sms_account.value}" placeholder="请输入短信宝账号" class="layui-input">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">短信宝密码</label>
                        <div class="layui-input-inline">
                            <input type="password" name="sms_pwd" value="{$configs.sms_pwd.value}" placeholder="请输入短信宝密码" class="layui-input">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">短信宝签名</label>
                        <div class="layui-input-inline">
                            <input type="text" name="sms_signid"  value="{$configs.sms_signid.value}" placeholder="请输入短信宝签名" class="layui-input">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">留言发送短信</label>
                        <div class="layui-input-block">
                            <input type="radio" name="message_send_sms" value="1" {if([$configs.message_send_sms.value]==1)} checked="checked" {/if} title="启用">
                            <input type="radio" name="message_send_sms" value="0" {if([$configs.message_send_sms.value]==0)} checked="checked" {/if} title="禁用">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">表单发送短信</label>
                        <div class="layui-input-block">
                            <input type="radio" name="form_send_sms" value="1" {if([$configs.form_send_sms.value]==1)} checked="checked" {/if} title="启用">
                            <input type="radio" name="form_send_sms" value="0" {if([$configs.form_send_sms.value]==0)} checked="checked" {/if} title="禁用">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">评论发送短信</label>
                        <div class="layui-input-block">
                            <input type="radio" name="comment_send_sms" value="1" {if([$configs.comment_send_sms.value]==1)} checked="checked" {/if} title="启用">
                            <input type="radio" name="comment_send_sms" value="0" {if([$configs.comment_send_sms.value]==0)} checked="checked" {/if} title="禁用">
                        </div>
                    </div>
 
                    <div class="layui-form-item">
                        <label class="layui-form-label">信息接收手机号</label>
                        <div class="layui-input-inline">
                            <input type="text" name="sms_send_to"  value="{$configs.sms_send_to.value}" placeholder="请输入信息接收手机号"  class="layui-input">
                        </div>
                    </div>

2:在当前页面同时增加短信注册验证码 大概在707行

1
2
3
4
5
6
7
8
9
<div class="layui-form-item">
        <label class="layui-form-label">会员注册验证码</label>
        <div class="layui-input-block">
            <input type="radio" name="register_check_code" value="0" {if([$configs.register_check_code.value]=='0')} checked="checked" {/if} title="禁用">
            <input type="radio" name="register_check_code" value="1" {if([$configs.register_check_code.value]=='1'||[$configs.register_check_code.value]=='')} checked="checked" {/if} title="普通验证码">
            <input type="radio" name="register_check_code" value="2" {if([$configs.register_check_code.value]=='2')} checked="checked" {/if} title="邮箱验证码">
             <input type="radio" name="register_check_code" value="3" {if([$configs.register_check_code.value]=='3')} checked="checked" {/if} title="短信验证码">
        </div>
    </div>

3:打开项目:apps\admin\controller\system\ConfigController.php 修改保存方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
       if ($_POST) {
            unset($_POST['upload']); // 去除上传组件
            if (isset($_POST['sn'])) {
                $_POST['licensecode'] = base64_encode(post('sn') . '/' . post('sn_user')) . substr(post('sn'), 1, 1);
            }
            foreach ($_POST as $key => $value) {
                if (! preg_match('/^[\w\-]+$/', $key)) {
                    continue;
                }
                $config = array(
                    'debug',
                    // 'sn',
                    // 'sn_user',
                    'pagenum',
                    'tpl_html_cache',
                    'tpl_html_cache_time',
                    'session_in_sitepath'
                );
                if (in_array($key, $config)) {
                    if ($key == 'tpl_html_cache_time' && ! $value) {
                        $value = 900;
                    else {
                        $value = post($key);
                    }
                    $this->modConfig($key, $value);
                else {
                    $this->modDbConfig($key);
                }
            }
             
            $this->log('修改参数配置成功!');
            path_delete(RUN_PATH . '/config'); // 清理缓存的配置文件
             
            switch (post('submit')) {
                case 'email':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t2'), false));
                    break;
                case 'baidu':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t3'), false));
                    break;
                case 'api':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t4'), false));
                    break;
                case 'watermark':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t5'), false));
                    break;
                case 'security':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t6'), false));
                    break;
                case 'urlrule':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t7'), false));
                    break;
                case 'pagetitle':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t8'), false));
                    break;
                case 'member':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t9'), false));
                    break;
                case 'upgrade':
                    success('修改成功!', url('/admin/Upgrade/index' . get_tab('t2'), false));
                    break;
                case 'sms':
                    success('修改成功!', url('/admin/Config/index' . get_tab('t10'), false));
                    break;
                default:
                    success('修改成功!', url('/admin/Config/index'false));
            }
        }

4:打开项目:template\default\html\member\register.html 修改注册页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<div class="container pages">
 
    {include file=comm/position.html}
 
    <!-- 用户注册 -->
    <div class="row">
        <div class="col-lg-3"></div>
        <div class="col-12 col-lg-6">
            <form class="my-4" onsubmit="return register(this);">
                {pboot:if({pboot:registercodestatus}==3)}
                <div class="form-group">
                    <label for="username">手机号</label>
                    <input type="text" name="username" required id="username" onblur="isRegister()" class="form-control" placeholder="请输入登录账号">
                    <div id="usernote"></div>
                </div>
                {else}
                <div class="form-group">
                    <label for="username">账 号</label>
                    <input type="text" name="username" required id="username" onblur="isRegister()" class="form-control" placeholder="请输入登录账号">
                    <div id="usernote"></div>
                </div>
                {/pboot:if}
 
                 
                <div class="form-group">
                    <label for="nickname">昵 称</label>
                    <input type="text" name="nickname" required id="nickname" class="form-control" placeholder="请输入账号昵称">
                </div>
                 
                <div class="form-group">
                    <label for="password">密 码</label>
                    <input type="password" name="password" required id="password" class="form-control" placeholder="请输入登录密码">
                </div>
                 
                <div class="form-group">
                    <label for="rpassword">确认密码</label>
                    <input type="password" name="rpassword" required id="rpassword" class="form-control" placeholder="请再次输入登录密码">
                </div>
                 
                {pboot:if({pboot:registercodestatus}==1)}
                <div class="form-group">
                    <label for="checkcode">验证码</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="请输入验证码">
                        </div>
                        <div class="col-6">
                            <img title="点击刷新" style="height:33px;" id="codeimg" src="{pboot:checkcode}" onclick="this.src='{pboot:checkcode}?'+Math.round(Math.random()*10);" />
                        </div>
                    </div>
                </div>
                {/pboot:if}
                 
                {pboot:if({pboot:registercodestatus}==2)}
                <div class="form-group">
                    <label for="checkcode">邮箱验证码</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="请输入验证码">
                        </div>
                        <div class="col-6">
                            <span  class="btn btn-info mb-2" onclick="sendEmail();">发送</span>
                        </div>
                    </div>
                </div>
                {/pboot:if}
 
                {pboot:if({pboot:registercodestatus}==3)}
                <div class="form-group">
                    <label for="checkcode">手机验证码</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="请输入验证码">
                        </div>
                        <div class="col-6">
                            <span  class="btn btn-info mb-2" onclick="sendSms();">发送</span>
                        </div>
                    </div>
                </div>
                {/pboot:if}
                <div class="form-group">
                   <button type="submit" class="btn btn-info mb-2">立即注册</button>
                   <span class="text-secondary ml-3">已有账号?<a href="{pboot:login}">马上登录</a></span>
                </div>
            </form>
        </div>
        <div class="col-lg-3"></div>
    </div> 
</div>

5:打开项目:template\default\html\member\retrieve.html 修改更改密码页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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
161
162
163
164
165
166
167
168
169
170
171
172
173
{include file=comm/head.html}
 
{include file=comm/top.html}
 
<div class="container pages">
 
  {include file=comm/position.html}
 
  <!-- 用户密码找回 -->
  <div class="row">
    <div class="col-lg-3"></div>
    <div class="col-12 col-lg-6">
      <form class="my-4" onsubmit="return retrieve(this);">
        {pboot:if({pboot:registercodestatus}==3)}
        <div class="form-group">
          <label for="username">手机号</label>
          <input type="text" name="username" required id="username" onblur="isRegister()" class="form-control" placeholder="请输入已注册账号">
          <div id="usernote"></div>
        </div>
        {else}
        <div class="form-group">
          <label for="username">账  号</label>
          <input type="text" name="username" required id="username" class="form-control" placeholder="请输入已注册账号">
        </div>
        <div class="form-group">
          <label for="email">邮 箱</label>
          <input type="text" name="email" required id="email" class="form-control" placeholder="请输入已注册邮箱">
          <div id="emailnote"></div>
        </div>
        {/pboot:if}
        {pboot:if({pboot:registercodestatus}==3)}
        <div class="form-group">
          <label for="checkcode">手机验证码</label>
          <div class="row">
            <div class="col-6">
              <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="请输入验证码">
            </div>
            <div class="col-6">
              <span  class="btn btn-info mb-2" onclick="sendSms();">发送</span>
            </div>
          </div>
        </div>
        {else}
        <div class="form-group">
          <label for="checkcode">邮箱验证码</label>
          <div class="row">
            <div class="col-6">
              <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="请输入验证码">
            </div>
            <div class="col-6">
              <span  class="btn btn-info mb-2" onclick="sendEmail();">发送</span>
            </div>
          </div>
        </div>
        {/pboot:if}
        <div class="form-group">
          <label for="password">新密码</label>
          <div class="row">
            <div class="col-6">
              <input type="password" name="password" required id="password" class="form-control" placeholder="请输入新的密码">
            </div>
          </div>
        </div>
        <div class="form-group">
          <button type="submit" class="btn btn-info mb-2">确认</button>
        </div>
      </form>
    </div>
    <div class="col-lg-3"></div>
  </div>
</div>
 
<script>
 
  //找回密码
  function retrieve(obj){
    var url='{pboot:retrieve}';
    var username = $(obj).find("#username").val();
    var email=$(obj).find("#email").val();
    var checkcode=$(obj).find("#checkcode").val();
    var password=$(obj).find("#password").val();
 
    $.ajax({
      type: 'POST',
      url: url,
      dataType: 'json',
      data: {
        username:username,
        email: email,
        checkcode: checkcode,
        password: password,
      },
      success: function (response, status) {
        if(response.code){
          alert("密码设置成功!");
          location.href= response.tourl;
        }else{
          $('#codeimg').click();
          alert(response.data);
        }
      },
      error:function(xhr,status,error){
        alert('返回数据异常!');
      }
    });
    return false;
  }
 
  //发送邮件验证码
  function sendEmail(){
    var url='{pboot:sendemail}';
    var email=$("#email").val();
    if(!email){
      $("#emailnote").removeClass("valid-feedback");
      $("#emailnote").text("请输入注册邮箱!");
      return false;
    }
    $.ajax({
      type: 'POST',
      url: url,
      dataType: 'json',
      data: {
        retrieve:1,
        to: email
      },
      success: function (response, status) {
        if(response.code){
          alert(response.data);
        }else{
          alert(response.data);
        }
      },
      error:function(xhr,status,error){
        alert('返回数据异常!');
      }
    });
    return false;
  }
  //发送短信验证码
  function sendSms(){
    var url='{pboot:retrievesms}';
    var username=$("#username").val();
    if(!username){
      $("#username").addClass("is-invalid");
      $("#usernote").addClass("invalid-feedback");
      $("#username").removeClass("is-valid");
      $("#usernote").removeClass("valid-feedback");
      $("#usernote").text("请输入需要注册的账号!");
      return false;
    }
    $.ajax({
      type: 'POST',
      url: url,
      dataType: 'json',
      data: {
        to: username
      },
      success: function (response, status) {
        if(response.code){
          alert(response.data);
        }else{
          alert(response.data);
        }
      },
      error:function(xhr,status,error){
        alert('返回数据异常!');
      }
    });
    return false;
  }
</script>
 
{include file=comm/foot.html}

6:打开项目:apps\home\controller\MemberController.php 增加注册修改密码模块短信发送函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
    public function sendSms()
    {
        $to = post('to');
 
        if ($this->config('register_check_code') != 3) {
            json(0, '发送失败,后台配置非短信验证码模式!');
        }
        if (! preg_match('/^1[0-9]{10}$/', $to)) {
            json(0, '账号格式不正确,请输入正确的手机号码!');
        }
 
        if (! session('sendsms')) {
            json(0, '非法提交发送短信!');
        }
        if (time() - session('lastsendsms') < 60) {
            json(0, '您提交太频繁了,请稍后再试!');
        }
 
        // 检查手机注册
        if ($this->model->checkUsername("usermobile='$to' OR username='$to'")) {
            json(0, '您输入的手机号已被注册!');
        }
        $rs = false;
        if ($to) {
            $code = create_code(4);
            session('checkcode', strtolower($code));
            $mail_body = "您的验证码为:" . $code;
            $rs = sendsms($this->config(), $to, $mail_body);
        }
        if ($rs === true) {
            session('lastsendsms', time()); // 记录最后提交时间
            json(1, '发送成功!');
        else {
            json(0, '发送失败,' . $rs);
        }
    }
        //找回密码发送短信
    public function retrieveSms()
    {
        $to = post('to');
 
        if ($this->config('register_check_code') != 3) {
            json(0, '发送失败,后台配置非短信验证码模式!');
        }
        if (! preg_match('/^1[0-9]{10}$/', $to)) {
            json(0, '账号格式不正确,请输入正确的手机号码!');
        }
 
        if (! session('retrievesms')) {
            json(0, '非法提交发送短信!');
        }
        if (time() - session('lastsendsms') < 60) {
            json(0, '您提交太频繁了,请稍后再试!');
        }
 
        $rs = false;
        if ($to) {
            $code = create_code(4);
            session('checkcode', strtolower($code));
            $mail_body = "您的验证码为:" . $code;
            $rs = sendsms($this->config(), $to, $mail_body);
        }
        if ($rs === true) {
            session('lastsendsms', time()); // 记录最后提交时间
            json(1, '发送成功!');
        else {
            json(0, '发送失败,' . $rs);
        }
    }
 }

7:打开项目:apps\home\controller\ParserController.php 修改大概143行

1
2
3
4
5
6
7
8
9
10
11
12
13
        if (strpos($content, '{pboot:sendsms}')) {
            session('sendsms'true); // 避免非法外部提交
            $content = str_replace('{pboot:sendsms}', Url::home('member/sendSms'), $content); // 发送短信
        else {
            session('sendsms'false);
        }
 
        if (strpos($content, '{pboot:retrievesms}')) {
            session('retrievesms'true); // 避免非法外部提交
            $content = str_replace('{pboot:retrievesms}', Url::home('member/retrieveSms'), $content); // 发送短信
        else {
            session('retrievesms'false);
        }

8:打开项目:apps\home\controller\CommentController.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
public function add()
    {
        if ($_POST) {
             
            if ($this->config('comment_status') === '0') {
                error('系统已经关闭评论功能,请到后台开启再试!');
            }
             
            if (time() - session('lastsub') < 10) {
                alert_back('您提交太频繁了,请稍后再试!');
            }
             
            if (! session('pboot_uid') && ! $this->config('comment_anonymous')) {
                if (! ! $backurl = $_SERVER['HTTP_REFERER']) {
                    alert_location("请先注册登录后再评论!", Url::home('member/login'null"backurl=" . urlencode($backurl)));
                else {
                    alert_location("请先注册登录后再评论!", Url::home('member/login'));
                }
            }
             
            // 验证码验证
            $checkcode = strtolower(post('checkcode''var'));
            if ($this->config('comment_check_code') !== '0') {
                if (! $checkcode) {
                    alert_back('验证码不能为空!');
                }
                 
                if ($checkcode != session('checkcode')) {
                    alert_back('验证码错误!');
                }
            }
             
            // 接收数据
             
            $status = $this->config('comment_verify') === '0' ? 1 : 0;
            if (! $contentid = request('contentid''int')) {
                alert_back('文章ID未能正常获取,请使用POST或URL参数传递!');
            }
             
            $comment = post('comment');
             
            $data = array(
                'pid' => request('pid''int') ?: 0,
                'contentid' => $contentid,
                'comment' => $comment,
                'uid' => session('pboot_uid'),
                'puid' => request('puid''int'),
                'likes' => 0,
                'oppose' => 0,
                'status' => $status,
                'user_ip' => ip2long(get_user_ip()),
                'user_os' => get_user_os(),
                'user_bs' => get_user_bs(),
                'create_time' => get_datetime(),
                'update_user' => '',
                'update_time' => ''
            );
             
            if ($this->model->addComment($data)) {
                session('lastsub', time()); // 记录最后提交时间
                $this->log('文章' . $contentid . '评论提交成功!');
 
                if ($this->config('sms_status')) {
                    if ($this->config('comment_send_sms') && $this->config('sms_send_to')) {
                        $sms_subject = "您有新的文章评论信息,请注意查收!";
                        sendsms($this->config(), $this->config('sms_send_to'), $sms_subject);
                    }
                }else{
                    if ($this->config('comment_send_mail') && $this->config('message_send_to')) {
                        $mail_subject = "【" . CMSNAME . "】您有新的文章评论信息,请注意查收!";
                        $mail_body = '评论内容:' . $comment . '<br>';
                        $mail_body .= '<br>来自网站 ' . get_http_url() . ' (' . date('Y-m-d H:i:s') . ')';
                        sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body);
                    }
                }
                if ($status) {
                    alert_location('评论提交成功!''-1', 1);
                else {
                    alert_location('评论提交成功,请等待管理员审核!''-1', 1);
                }
            else {
                $this->log('文章评论提交失败!');
                alert_back('提交失败!');
            }
        else {
            alert_back('提交失败,请使用POST方式提交!');
        }
    }

9:打开项目:\apps\home\controller\FormController.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
 public function index()
    {
        // 在非兼容模式接受地址第二参数值
        if (defined('RVAR')) {
            $_GET['fcode'] = RVAR;
        }
         
        if ($_POST) {
             
            if ($this->config('form_status') === '0') {
                error('系统已经关闭表单功能,请到后台开启再试!');
            }
             
            if (time() - session('lastsub') < 10) {
                alert_back('您提交太频繁了,请稍后再试!');
            }
             
            if (! $fcode = get('fcode''var')) {
                alert_back('传递的表单编码有误!');
            }
             
            if ($fcode == 1) {
                alert_back('表单提交地址有误,留言提交请使用留言专用地址!');
            }
             
            // 验证码验证
            $checkcode = strtolower(post('checkcode''var'));
            if ($this->config('form_check_code') !== '0') {
                if (! $checkcode) {
                    alert_back('验证码不能为空!');
                }
                if ($checkcode != session('checkcode')) {
                    alert_back('验证码错误!');
                }
            }
             
            // 读取字段
            if (! $form = $this->model->getFormField($fcode)) {
                alert_back('接收表单不存在任何字段,请核对后重试!');
            }
             
            // 接收数据
            $mail_body = '';
            foreach ($form as $value) {
                $field_data = post($value->name);
                if (is_array($field_data)) { // 如果是多选等情况时转换
                    $field_data = implode(',', $field_data);
                }
                $field_data = preg_replace_r('/pboot:if/i''', $field_data);
                if ($value->required && ! $field_data) {
                    alert_back($value->description . '不能为空!');
                else {
                    $data[$value->name] = $field_data;
                    $mail_body .= $value->description . ':' . $field_data . '<br>';
                }
            }
             
            // 设置创建时间
            if ($data) {
                $data['create_time'] = get_datetime();
            }
             
            // 写入数据
            if ($this->model->addForm($value->table_name, $data)) {
                session('lastsub', time()); // 记录最后提交时间
                $this->log('提交表单数据成功!');
                if ($this->config('sms_status')) {
                    if ($this->config('form_send_sms') && $this->config('sms_send_to')) {
                        $sms_subject = "您有新的" . $value->form_name . "信息,请注意查收!";
                        sendsms($this->config(), $this->config('sms_send_to'), $sms_subject);
                    }
                }else{
                    if ($this->config('form_send_mail') && $this->config('message_send_to')) {
                        $mail_subject = "【" . CMSNAME . "】您有新的" . $value->form_name . "信息,请注意查收!";
                        $mail_body .= '<br>来自网站' . get_http_url() . '(' . date('Y-m-d H:i:s') . ')';
                        sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body);
                    }
                }
                alert_location('提交成功!''-1', 1);
            else {
                $this->log('提交表单数据失败!');
                alert_back('提交失败!');
            }
        else {
            alert_back('提交失败,请使用POST方式提交!');
        }
    }

10:打开项目:apps\home\controller\MessageController.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
public function index()
    {
        if ($_POST) {
             
            if ($this->config('message_status') === '0') {
                error('系统已经关闭留言功能,请到后台开启再试!');
            }
             
            if (time() - session('lastsub') < 10) {
                alert_back('您提交太频繁了,请稍后再试!');
            }
             
            // 需登录
            if ($this->config('message_rqlogin') && ! session('pboot_uid')) {
                if (! ! $backurl = $_SERVER['HTTP_REFERER']) {
                    alert_location("请先注册登录后再留言!", Url::home('member/login'null"backurl=" . urlencode($backurl)));
                else {
                    alert_location("请先注册登录后再留言!", Url::home('member/login'));
                }
            }
             
            // 验证码验证
            $checkcode = strtolower(post('checkcode''var'));
            if ($this->config('message_check_code') !== '0') {
                if (! $checkcode) {
                    alert_back('验证码不能为空!');
                }
                 
                if ($checkcode != session('checkcode')) {
                    alert_back('验证码错误!');
                }
            }
             
            // 读取字段
            if (! $form = $this->model->getFormField(1)) {
                alert_back('留言表单不存在任何字段,请核对后重试!');
            }
             
            // 接收数据
            $mail_body = '';
            foreach ($form as $value) {
                $field_data = post($value->name);
                if (is_array($field_data)) { // 如果是多选等情况时转换
                    $field_data = implode(',', $field_data);
                }
                $field_data = preg_replace_r('/pboot:if/i''', $field_data);
                if ($value->required && ! $field_data) {
                    alert_back($value->description . '不能为空!');
                else {
                    $data[$value->name] = $field_data;
                    $mail_body .= $value->description . ':' . $field_data . '<br>';
                }
            }
             
            $status = $this->config('message_verify') === '0' ? 1 : 0;
             
            // 设置额外数据
            if ($data) {
                $data['acode'] = get_lg();
                $data['user_ip'] = ip2long(get_user_ip());
                $data['user_os'] = get_user_os();
                $data['user_bs'] = get_user_bs();
                $data['recontent'] = '';
                $data['status'] = $status;
                $data['create_user'] = 'guest';
                $data['update_user'] = 'guest';
                $data['uid'] = session('pboot_uid');
            }
             
            if ($this->model->addMessage($data)) {
                session('lastsub', time()); // 记录最后提交时间
                $this->log('留言提交成功!');
                if ($this->config('sms_status')) {
                    if ($this->config('message_send_sms') && $this->config('sms_send_to')) {
                        $sms_subject = "您有新的" . $value->form_name . "信息,请注意查收!";
                        sendsms($this->config(), $this->config('sms_send_to'), $sms_subject);
                    }
                else {
                    if ($this->config('message_send_mail') && $this->config('message_send_to')) {
                        $mail_subject = "【" . CMSNAME . "】您有新的" . $value->form_name . "信息,请注意查收!";
                        $mail_body .= '<br>来自网站 ' . get_http_url() . ' (' . date('Y-m-d H:i:s') . ')';
                        sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body);
                    }
                }
                alert_location('提交成功!''-1', 1);
            else {
                $this->log('留言提交失败!');
                alert_back('提交失败!');
            }
        else {
            alert_back('提交失败,请使用POST方式提交!');
        }
    }

11:打开项目:core\function\helper.php 增加短信宝发送接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function sendsms(array $config, $to, $content)
{
    $statusStr = array(
        "0" => "短信发送成功",
        "-1" => "参数不全",
        "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
        "30" => "密码错误",
        "40" => "账号不存在",
        "41" => "余额不足",
        "42" => "帐户已过期",
        "43" => "IP地址限制",
        "50" => "内容含有敏感词"
    );
    if (! $to || ! $content) {
        return false;
    }
 
    if ($config['sms_status'] == 0){
        alert_back('短信暂未开启');
    }
 
    if (! isset($config['sms_status']) || ! isset($config['sms_pwd']) || ! isset($config['sms_signid'])) {
        alert_back('短信发送参数配置有误');
    }
 
    $user = $config['sms_account'];
    $pass = md5($config['sms_pwd']);
    $content = "【" . $config['sms_signid'] . "】".$content;
    $phone = $to; // 替换空格
    $smsapi = "http://api.smsbao.com/";
    $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
    $res =file_get_contents($sendurl) ;
     if ($res == 0) {
         return true;
        else {
         error('短信发送失败,' . $statusStr[$res]);
     }
}

经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。进行测试发送:

报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。

另外:我们已经开发好完整的PbootCMS_V3.2.0系统短信宝插件,点击此链接 下载及查看安装流

开源插件

最新更新

电商类

CMS类

微信类

文章标签