视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php如何实现手机验证
2020-11-07 23:11:09 责编:小采
文档


推荐:《PHP视频教程》

php实现手机短信验证功能

现在网站在建设网站时为了保证用户信息的真实性,往往会选择发短信给用户手机发验证码信息,只有通过验证的用户才可以注册,这样保证了用户的联系信息资料的100%的准确性 。今天笔者就跟大家分享一下如何实现php手机短信验证功能,希望对大家有所帮助。

第一、实现php手机短信验证功能的基本思路

1、要找到短信服务提供商,接入短信服务

2、在网站信息提交页面请求发送信息

3、服务器向短信服务提供商通信,提交发送请求

4、短信服务提供商通过运营商将信息发送到用户的手机中

二、手机号码短信验证前台页面效果实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title></title>
 <script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
 /*-------------------------------------------*/
 var InterValObj; //timer变量,控制时间
 var count = 60; //间隔函数,1秒执行
 var curCount;//当前剩余秒数
 var code = ""; //验证码
 var codeLength = 6;//验证码长度
 function sendMessage() {
 curCount = count;
 var dealType; //验证方式
 tel = $(’#tel’).val();
 if(tel!=’’){
 //验证手机有效性
 var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
 if(!myreg.test($(’#tel’).val()))
 {
 alert(’请输入有效的手机号码!’);
 return false;
 }
 tel = $(’#tel’).val();
 //产生验证码
 for (var i = 0; i < codeLength; i++) {
 code += parseInt(Math.random() * 9).toString();
 }
 //设置button效果,开始计时
 $("#btnSendCode").attr("disabled", "true");
 $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
 InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
 //向后台发送处理数据
 $.ajax({
 type: "POST", //用POST方式传输
 dataType: "text", //数据格式:JSON
 url: ’yanzhengma.php’, //目标地址(根据实际地址)
 data: "&tel=" + tel + "&code=" + code,
 error: function (XMLHttpRequest, textStatus, errorThrown) { },
 success: function (msg){ }
 });
 }else{
 alert(’请填写手机号码’);
 }
 }
 //timer处理函数
 function SetRemainTime() {
 if (curCount == 0) { 
 window.clearInterval(InterValObj);//停止计时器
 $("#btnSendCode").removeAttr("disabled");//启用按钮
 $("#btnSendCode").val("重新发送验证码");
 code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效 
 }
 else {
 curCount--;
 $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
 }
 }
 </script>
</head>
<body>
<input name="tel" id=tel type="text" />
 <input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" /></p>
</body>
</html>

第三、调用短信服务器短信接口

笔者整理的页面是yanzhengma.php(具体根据服务商提供信息)

<?php //提交短信
$post_data = array();
$post_data[’userid’] = 短信服务商提供ID;
$post_data[’account’] = ’短信服务商提供用户名’;
$post_data[’password’] = ’短信服务商提供密码’;
// Session保存路径
$sessSavePath = dirname(__FILE__)."/../data/sessions/";
if(is_writeable($sessSavePath) && is_readable($sessSavePath)){
 session_save_path($sessSavePath);
}
session_register(’mobliecode’);
$_SESSION[’mobilecode’] = $_POST["code"];
$content=’短信验证码:’.$_POST["code"].’【短信验证】’;
$post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信内容需要用urlencode编码下
$post_data[’mobile’] = $_POST["tel"];
$post_data[’sendtime’] = ’’; //不定时发送,值为0,定时发送,输入格式YYYYMMDDHHmmss的日期值
$url=’http://IP:8888/sms.aspx?action=send’;
$o=’’;
foreach ($post_data as $k=>$v)
{
 $o.="$k=".$v.’&’;
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。
$result = curl_exec($ch);
?>

第四:提交表单信息时对短信验证码验证

//手机验证码开始
 session_start();
 $svalitel = $_SESSION[’mobilecode’];
 $vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));
 
 if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)
 {
 ResetVdValue();
 //echo "Pageviews=".$vdcodetel;
 ShowMsg("手机验证码错误!", ’-1’);
 exit();
 }

下载本文
显示全文
专题