如今手机验证码注册已经非常流行了,本插件就是实现帝国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
|
<?php require (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