今天公司提出一个需求,要在现有项目上收集注册用户的真实手机号,由于之前没有接触过这一块,只能寻求度娘的帮助,经过一天的努力,终于完成了,现整理记录下已备查阅。

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('注册成功。');
}

}