站长资讯网
最全最丰富的资讯网站

php如何实现短信验证

php实现短信验证的方法:首先接入短信服务;然后在网站信息提交页面请求发送信息;接着服务器向短信服务提供商通信,提交发送请求;最后短信服务提供商通过运营商将信息发送到用户的手机中。

php如何实现短信验证

php实现短信验证的方法:

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

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

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

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

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

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

php如何实现短信验证

<!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();             }

想了解

赞(0)
分享到: 更多 (0)