YzmCMS是一款輕量級(jí)開源內(nèi)容管理系統(tǒng),它采用OOP(面向?qū)ο螅┓绞阶灾鏖_發(fā)的框架。基于PHP+Mysql架構(gòu),并采用MVC框架式開發(fā)的一款高效開源的內(nèi)容管理系統(tǒng),可運(yùn)行在Linux、Windows、MacOSX、Solaris等各種平臺(tái)上。便于進(jìn)行二次開發(fā),小編對(duì)這款軟件還是比較了解的,小編今天就以新增短信接口為例為大家講解一下如何進(jìn)行二次開發(fā),我們使用的短信接口是我們短信寶短信群發(fā)平臺(tái)的短信接口,我們短信寶短信群發(fā)平臺(tái)非常穩(wěn)定,發(fā)送速度快,注冊(cè)就送測(cè)試短信,推薦大家使用。
首先我們打開項(xiàng)目:application\admin\view\system_set.html文件,在237~256行增加短信寶配置代碼:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<div class="tabCon"><div class="row cl"> <label class="form-label col-xs-4 col-sm-2">短信寶用戶名:</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" name="smsbao_user" value="<?php echo $data["smsbao_user"];?>" class="input-text" style="width:50%"> </div></div> <div class="row cl"> <label class="form-label col-xs-4 col-sm-2">短信寶密碼:</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" name="smsbao_pass" value="<?php echo $data["smsbao_pass"];?>" class="input-text" style="width:50%"> </div></div> <div class="row cl"> <label class="form-label col-xs-4 col-sm-2">短信簽名:</label> <div class="formControls col-xs-8 col-sm-9"> <input type="text" name="smsbao_sign" value="<?php echo $data["smsbao_sign"];?>" class="input-text" style="width:50%"> </div> </div> </div> |
接著打開項(xiàng)目:application\member\controller\index.class.php文件,替換register方法:
|
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
|
public function register(){ $config = get_config(); //檢查是否允許新會(huì)員注冊(cè) if($config['member_register'] == 0) showmsg('管理員關(guān)閉了新會(huì)員注冊(cè)!', 'stop'); if(isset($_SESSION['_userid']) && $_SESSION['_userid']){ showmsg(L('login_success'), U('member/index/init'), 1); } if(isset($_POST['dosubmit'])){ if(empty($_SESSION['code']) || strtolower($_POST['code']) != $_SESSION['code']){ $_SESSION['code'] = ''; showmsg(L('code_error'), '', 1); } if (empty($_SESSION['mobile_code']) || strtolower($_POST['mobile_code']) != $_SESSION['mobile_code']) { $_SESSION['mobile_code'] = ''; showmsg(L('手機(jī)驗(yàn)證碼不正確'),'',1); } $_SESSION['code'] = ''; $member = D('member'); $data = array(); $data['username'] = isset($_POST['username']) && is_username($_POST['username']) ? trim($_POST['username']) : showmsg(L('user_name_format_error')); $data['password'] = isset($_POST['password']) && is_password($_POST['password']) ? trim($_POST['password']) : showmsg(L('password_format_error')); $data['email'] = isset($_POST['email']) && is_email($_POST['email']) ? trim($_POST['email']) : showmsg(L('mail_format_error')); $data['mobile'] = isset($_POST['mobile']) && is_mobile($_POST['mobile']) ? trim($_POST['mobile']) : showmsg(L('手機(jī)號(hào)不正確')); $result = $member->where(array('username'=>$_POST['username']))->find(); if($result) showmsg(L('user_already_exists')); $result = $member->where(array('email'=>$_POST['email']))->find(); if($result) showmsg("郵箱已存在!"); $results = $member->where(array('mobile'=>$_POST['mobile']))->find(); if($results) showmsg("手機(jī)已存在"); $data['nickname'] = $data['username']; $data["password"] = password($data['password']); $data['regdate'] = $data['lastdate'] = SYS_TIME; $data['regip'] = $data['lastip'] = getip(); $data['groupid'] = '1'; $data['amount'] = '0.00'; $data['point'] = $data['experience'] = $config['member_point']; //經(jīng)驗(yàn)和積分 $data['status'] = ($config['member_check'] || $config['member_email']) ? 0 : 1; $data['userid'] = $member->insert($data, true); if(!$data['userid']) showmsg("注冊(cè)失敗!"); D('member_detail')->insert($data, true, false); //插入附表 if($config['member_email']){ //是否需要郵件驗(yàn)證 $mail_code = $_SESSION['mail_code'] = md5(microtime(true).$data['userid']); $_SESSION['userid'] = $data['userid']; $url = SITE_URL."index.php?m=member&c=index&a=register&mail_code=$mail_code&userid={$data['userid']}&verify=1"; $message = '請(qǐng)點(diǎn)擊郵箱驗(yàn)證地址:<a href="'. $url .'">'. $url .'</a>'; $res = sendmail($data['email'], '會(huì)員郵箱驗(yàn)證', $message); if(!$res) showmsg('郵件發(fā)送失敗,請(qǐng)聯(lián)系網(wǎng)站管理員!', 'stop'); showmsg('我們已將郵件發(fā)送到您的郵箱,請(qǐng)盡快完成驗(yàn)證!'); }elseif($config['member_check']){ //是否需要管理員審核 showmsg('注冊(cè)成功,由于管理員開啟審核機(jī)制,請(qǐng)耐心等待!'); } $_SESSION['_userid'] = $data['userid']; $_SESSION['_username'] = $data['username']; set_cookie('_userid', $data['userid']); set_cookie('_username', $data['username']); set_cookie('_nickname', $data['username']); set_cookie('_groupid', $data['groupid']); showmsg('注冊(cè)成功!', U('member/index/init'), 1); }else{ if(!empty($_GET['verify'])) { $mail_code = isset($_GET['mail_code']) ? trim($_GET['mail_code']) : showmsg(L('illegal_operation')); $userid = isset($_GET['userid']) ? intval($_GET['userid']) : showmsg(L('illegal_operation')); if(isset($_SESSION['mail_code']) && $mail_code==$_SESSION['mail_code'] && $userid==$_SESSION['userid']){ unset($_SESSION['mail_code'], $_SESSION['userid']); D('member')->update(array('status' => 1, 'email_status' => 1),array('userid'=>$userid)); showmsg('郵箱驗(yàn)證成功!', U('member/index/login'), 2); }else{ showmsg('驗(yàn)證失敗,可能是驗(yàn)證時(shí)間已過期!', U('member/index/register')); } } include template('member', 'register'); } } |
接著打開項(xiàng)目:application\member\controller\reset.class.php文件,增加reset_mobile方法:
|
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
|
public function reset_mobile(){ session_start(); $_SESSION['step'] = isset($_SESSION['step']) ? $_SESSION['step'] : 1; if ($_SESSION['step']==1 && isset($_POST['dosubmit'])) { if(empty($_SESSION['code']) || strtolower($_POST['code']) != $_SESSION['code']){ $_SESSION['code'] = ''; showmsg(L('code_error'), '', 1); } $data = $this->_check($_POST['username']); if(empty($data['mobile'])) showmsg('您沒有綁定手機(jī),請(qǐng)選擇其他方式找回密碼!', 'stop'); $ret = sendsms($data['mobile']); if ($ret != 0) { showmsg('短信發(fā)送失敗,請(qǐng)聯(lián)系網(wǎng)站管理員!'); } $_SESSION['mobile'] = $data['mobile']; $_SESSION['userid'] = $data['userid']; $_SESSION['emc_times'] = 5; $_SESSION['step'] = 2; }elseif($_SESSION['step'] ==2 && isset($_POST['dosubmit'])){ if($_SESSION['emc_times']=='' || $_SESSION['emc_times']<=0){ $_SESSION['step'] = 1; showmsg("驗(yàn)證次數(shù)超過5次,請(qǐng)重新獲取短信驗(yàn)證碼!"); } if(!empty($_SESSION['mobile_code']) && strtolower($_POST['mobile_code']) == strtolower($_SESSION['mobile_code'])){ unset($_SESSION['emc_times']); $_SESSION['step'] = 3; }else{ $_SESSION['emc_times'] = $_SESSION['emc_times']-1; showmsg('短信校驗(yàn)碼錯(cuò)誤!','',1); } }else if($_SESSION['step']==3 && isset($_POST['dosubmit'])){ if(!isset($_POST['password']) || !is_password($_POST['password'])) showmsg(L('password_format_error')); D('member')->update(array('password' => password($_POST['password'])),array('userid'=>$_SESSION['userid'])); unset($_SESSION['step'], $_SESSION['code'], $_SESSION['mobile_code'], $_SESSION['mobile'], $_SESSION['userid']); showmsg('更新密碼成功!', U('member/index/login')); } include template('member', 'reset_mobile'); } |
接著打開項(xiàng)目:application\member\view\default\register.html,在127行增加以下代碼:
|
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
|
<script type="text/javascript"> var time = 0; var res = null; function sendTime(){ clearTimeout(res); // 先清空一下倒計(jì)時(shí)資源。 time--; // 倒計(jì)時(shí)時(shí)間遞減。 // 如果倒計(jì)時(shí)到達(dá)0時(shí),則恢復(fù)按鈕原來的內(nèi)容 if (time <= 0) { time = "獲取驗(yàn)證碼"; $('.huoqu').text(time); clearTimeout(res); time = 0; return; } // 倒計(jì)時(shí)的內(nèi)容寫到按鈕里面 $('.huoqu').text("剩余" + time + "秒"); res = setTimeout("sendTime()", 1000); } $(function(){ var flg = true; $('.huoqu').on('click',function(){ console.log(123); var mobile = $("#mobile").val(); var code = $("#code").val(); var reg = /^1[3,4,5,7,8]\d{9}$/; var ret = false; if (code == '') {layer.msg('請(qǐng)?zhí)顚戲?yàn)證碼'); return ret;} if (!reg.test(mobile)) {layer.msg('手機(jī)號(hào)碼不正確');return ret;} if (0 == time) { var data = {"code" : code, "mobile" : mobile}; var err = ""; if (flg == true) { flg = false; // ajax提交請(qǐng)求 $.ajax({ type: "post", url: "{U('public_checksms')}", dataType: "html", async: false, data: data, beforeSend: function(){ $("#dosubmit").attr({ disabled: "disabled" }); }, success: function(msg){ if(msg == '0'){ time = 60; sendTime(); layer.msg('短信發(fā)送成功!'); ret = true; }else if(msg == '1'){ layer.msg('驗(yàn)證碼不正確'); }else if(msg == '2'){ layer.msg('短信配置不正確'); }else{ layer.msg(msg); } } }); } $('.codeimg').click(); return ret; } }) })</script> |
最后打開項(xiàng)目:common\function\system.func.php文件,增加sendsms方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function sendsms($mobile){ $config = get_config(); $user = $config['smsbao_user']; $pass = $config['smsbao_pass']; $sign = $config['smsbao_sign']; if (empty($user) && empty($pass) && empty($sign)) { return 2; } $code = rand(1000,9999); $content = '【'.$sign.'】您的驗(yàn)證碼為:'.$code.'請(qǐng)妥善保存!'; $result = file_get_contents($url); if ($result == 0) { $_SESSION['mobile_code'] = $code; return '0'; }else{ return $result; }} |
好了,經(jīng)過以上的替換,短信寶的短信平臺(tái)已經(jīng)替換成功了,可以正常使用了。我們進(jìn)行測(cè)試發(fā)送。

報(bào)備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會(huì)人工審核,短信內(nèi)容3~5秒就可送達(dá)。
另外:我們已經(jīng)開發(fā)好完整的YzmCMS系統(tǒng)短信寶插件,點(diǎn)擊此鏈接 下載及查看安裝流程。
最新更新
電商類
CMS類
微信類