如今手机验证码注册已经非常流行了,本插件就是实现帝国CMS利用手机验证码注册会员,通过手机验证码找回密码
短信服务商: http:/www.sms.com.cn
短信接口文档: http://www.sms.com.cn/Sms/api.php
【手机注册】
1、增加5个拓展变量字段(都选择写入缓存)
rzzh 短信接口账号 (短信服务商账号,看上面服务商信息注册账号)
rzpw 短信接口密码 (短信服务商密码)
rznr 短信认证内容 (内容:手机注册认证码:[!--rzm--] 【签名】)
rznrq 短信认证内容 (内容:手机找回密码认证码:[!--rzm--] 【签名】)
rzkq 是否开启手机认证 (1 为开启 0为关闭)
2、增加数据表 phome_rz ,后台-执行SQL语句
|
1
2
3
4
5
6
7
8
9
|
REATE TABLE `[!db.pre!]rz` ( `id` int(11) NOT NULL auto_increment, `bsm` varchar(255) NOT NULL, `rzm` varchar(255) NOT NULL, `sj` varchar(255) NOT NULL, `t` int(11) NOT NULL, `c` int(11) NOT NULL, KEY `id` (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; |
增加数据表 phome_rzq ,后台-执行SQL语句
|
1
2
3
4
5
6
7
8
9
10
|
CREATE TABLE `[!db.pre!]rzq` ( `id` int(11) NOT NULL auto_increment, `bsm` varchar(255) NOT NULL, `rzm` varchar(255) NOT NULL, `sj` varchar(255) NOT NULL, `t` int(11) NOT NULL, `c` int(11) NOT NULL, `username` char(20) NOT NULL, KEY `id` (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; |
3、e/class/connect.php 增加函数(看函数文件.txt)
4、 e/member/doaction.php增加
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
elseif($enews=='RegSend')//重发激活邮件 { DoRegSend($_POST); } 下面增加 elseif($enews=='Rzsj')//认证手机号码 { $tel=$_GET['phone']; F_rzm($tel); } elseif($enews=='Rzsjq')//认证手机号码取回密码 { $add=$_GET; F_rzmq($add); } |
5. e/member/class/member_registerfun.php 增加
|
1
2
3
4
5
6
7
8
9
10
11
12
|
//验证附加表必填项$mr['add_filepass']=ReturnTranFilepass();$fid=GetMemberFormId($groupid);$member_r=ReturnDoMemberF($fid,$add,$mr,0,$username); 下面增加//手机注册验证if($public_r['add_rzkq']) { $tel=$add['phone']; $rzm=$add['rzm']; C_sjrz($tel,$rzm); } |
6. 修改 e/template/member/register.php 【1】
|
1
2
3
4
5
|
<tr> <td height="25" bgcolor="#FFFFFF"> <div align='left'>邮箱</div></td> <td height="25" bgcolor="#FFFFFF"> <input name='email' type='text' id='email' maxlength='50'> *</td> </tr> |
下面增加
|
1
2
3
4
5
6
7
8
9
10
11
|
<? $sjrz=1;?> <tr> <td height="25" bgcolor="#FFFFFF"> <div align='left'>手机号码</div></td> <td height="25" bgcolor="#FFFFFF"> <input name='phone' type='text' id='phone' maxlength='50'> *</td> </tr><tr> <td height="25" bgcolor="#FFFFFF"> <div align='left'>验证码</div></td> <td height="25" bgcolor="#FFFFFF"> <input name='rzm' type='text' id='rzm' maxlength='30'> *<input type="button" style="font-size: 12px; height: 22px; line-height: 19px;" value="发送验证码" onclick="sendrzm()" id="sendag" ></td> </tr> |
7. 修改 e/template/member/register.php 【2】
|
1
2
3
|
<?phprequire(ECMS_PATH.'e/template/incfile/footer.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
|
<SCRIPT language=javascript><!--var secs = 120;function sendrzm(){ var tel=$("#phone").val(); $.getJSON('/e/member/doaction.php?enews=Rzsj&phone=' + tel + '', function(data) { if(data.d=='2'){ alert(data.n);}else{ document.userinfoform.sendag.disabled=true; for(i=1;i<=secs;i++) { window.setTimeout("update(" + i + ")", i * 1000); }} }); }function update(num) { if(num == secs) { document.userinfoform.sendag.value ="重新发送验证码"; document.userinfoform.sendag.disabled=false; }else { printnr = secs-num; document.userinfoform.sendag.value = "(" + printnr +")重新发送验证码"; }}//--></SCRIPT> |
8. 修改 e/template/member/register.php 【3】
头部增加jquery.js文件
<script src="/js/jquery.min-1.7.2.js"></script>
复制/js/jquery.min-1.7.2.js 到根目录(包括文件夹)
9.修改会员表单 (后台-用户-会员管理-管理会员表单)
找到
|
1
|
<tr><td width='16%' height=25 bgcolor='ffffff'>手机</td><td bgcolor='ffffff'>[!--phone--]</td></tr> |
改成:
|
1
|
<? if(!$sjrz){?> <tr><td width='16%' height=25 bgcolor='ffffff'>手机</td><td bgcolor='ffffff'>[!--phone--]</td></tr><? }?> |
1.覆盖 e/template/member/GetPassword.php
2.修改 e/member/class/member_actfun.php
覆盖函数 SendGetPasswordEmail 查看SendGetPasswordEmail.txt