如今手机验证码注册已经非常流行了,本插件就是实现帝国CMS利用手机验证码注册会员,通过手机验证码找回密码
短信接口集成说明
短信服务商: http:/www.sms.com.cn
短信接口文档: /upload/news/201601/www.sms.com.cn/Sms/api.php
【手机注册】
1、增加5个拓展变量字段(都选择写入缓存)
rzzh 短信接口账号 (短信服务商账号,看上面服务商信息注册账号)
rzpw 短信接口密码 (短信服务商密码)
rznr 短信认证内容 (内容:手机注册认证码:[!--rzm--] 【签名】)
rznrq 短信认证内容 (内容:手机找回密码认证码:[!--rzm--] 【签名】)
rzkq 是否开启手机认证 (1 为开启 0为关闭)
2、增加数据表 phome_rz ,后台-执行SQL语句
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语句
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增加
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 增加
//验证附加表必填项 $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】
<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>
下面增加
<? $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】
<?php require(ECMS_PATH.'e/template/incfile/footer.php'); ?>
前面增加:
<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" width=100% src="/js/jquery.min-1.7.2.js"></script>
复制/js/jquery.min-1.7.2.js 到根目录(包括文件夹)
9.修改会员表单 (后台-用户-会员管理-管理会员表单)
找到
<tr><td width='16%' height=25 bgcolor='ffffff'>手机</td><td bgcolor='ffffff'>[!--phone--]</td></tr>
改成:
<? 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