今天公司提出一个需求,要在现有项目上收集注册用户的真实手机号,由于之前没有接触过这一块,只能寻求度娘的帮助,经过一天的努力,终于完成了,现整理记录下已备查阅。
1 解决方案:在注册时要求用户进行手机验证。
2 寻找短信供应商:由于对这一块不是太懂,大学同学推荐一家他们公司在用的给我。
3 代码实现
首先到互亿无线短信平台注册一个帐号,并登录到用户中心,选验证码模块下载接口文档,文档下载下来是一个压缩包,我们项目是用PHP开发的,直接找到目录DEMO/PHP/OOP
提示:开始之前先看一下官方对接说明文档
第一步 把前端html代码整合到注册页面
html 代码:
<form action="index.php" method="post" name="formUser">
<table width="100%" border="0" align="left" cellpadding="5" cellspacing="3">
<tr>
<td align="right">手机</td>
<td>
<input id="mobile" name="mobile" type="text" size="25" class="inputBg" /><span style="color:#FF0000"> *</span>
</td>
</tr>
<tr>
<td align="right">验证码</td>
<td>
<input type="text" name="gd_code" class="inputBg" size="25" id="gd_code">
<span> <img src="code.php" onClick="javascript:this.src=this.src+‘?date=‘+Date();"></span>
</td>
</tr>
<tr>
<td align="right">手机验证码</td>
<td align="left">
<input type="text" name="mobile_code" class="inputBg" size="25" />
<input id="zphone" type="button" value=" 获取手机验证码 " style="width: 120px" onClick="get_mobile_code()">
</td>
</tr>
<tr>
<td align="right"></td>
<td><input type="submit" value=" 注册 " class="button"></td>
</tr>
</table>
</form>
javascript代码
<script language="javascript">
function get_mobile_code(){
$.post(‘reg.php?send_sms=1‘, {mobile:jQuery.trim($(‘#mobile‘).val()),send_code:$("#gd_code").val()}, function(msg) {
alert(jQuery.trim(unescape(msg)));
if(msg ==‘提交成功‘){
RemainTime();
}else{
// location.reload();
}
});
};
var iTime = 59;
var Account;
function RemainTime(){
document.getElementById(‘zphone‘).disabled = true;
var iSecond,sSecond="",sTime="";
if (iTime >= 0){
iSecond = parseInt(iTime%60);
iMinute = parseInt(iTime/60)
if (iSecond >= 0){
if(iMinute>0){
sSecond = iMinute + "分" + iSecond + "秒";
}else{
sSecond = iSecond + "秒";
}
}
sTime=sSecond;
if(iTime==0){
clearTimeout(Account);
sTime=‘获取手机验证码‘;
iTime = 59;
document.getElementById(‘zphone‘).disabled = false;
}else{
Account = setTimeout("RemainTime()",1000);
iTime=iTime-1;
}
}else{
sTime=‘没有倒计时‘;
}
document.getElementById(‘zphone‘).value = sTime;
}
</script>
第一步 把后端php代码整合到程序逻辑中。
注意:把sms.class.php、code.php、config.ihuyi.php、font.ttf这四个文件要上传到项目路径下
session_start();
date_default_timezone_set("PRC");
if(!empty($_GET[‘send_sms‘])){
include(‘sms.class.php‘);
$sms = new ihuyi_sms;
$sms -> send_sms($_POST[‘mobile‘],$_POST[‘send_code‘]);
die;
}
if($_POST){
if($_POST[‘mobile‘]!=$_SESSION[‘mobile‘] or $_POST[‘mobile_code‘]!=$_SESSION[‘mobile_code‘] or empty($_POST[‘mobile‘]) or empty($_POST[‘mobile_code‘])){
exit(‘手机验证码输入错误。‘);
}else{
$_SESSION[‘mobile‘] = ‘‘;
$_SESSION[‘mobile_code‘] = ‘‘;
//注册逻辑
exit(‘注册成功。‘);
}
}
原文地址:http://blog.51cto.com/14024619/2305057