Maison > Article > développement back-end > Comment implémenter la vérification SMS en php
La méthode permettant à PHP de mettre en œuvre la vérification SMS : accédez d'abord au service SMS ; puis demandez l'envoi d'informations sur la page de soumission d'informations du site Web ; puis le serveur communique avec le fournisseur de services SMS et soumet enfin la demande d'envoi ; Le fournisseur de services SMS transmet à l'opérateur l'envoi d'informations au téléphone mobile de l'utilisateur.
Comment implémenter la vérification SMS en PHP :
Tout d'abord, l'idée de base de l'implémentation du téléphone mobile PHP Fonction de vérification SMS
1. Pour trouver le fournisseur de services SMS, accédez au service SMS
2. Demande d'envoi d'informations sur la page de soumission d'informations du site Web
3. communique avec le fournisseur de services SMS, Soumettez une demande d'envoi
4. Le fournisseur de services SMS envoie les informations au téléphone mobile de l'utilisateur via l'opérateur
2. Effet de première page de vérification du numéro de téléphone portable par SMS est atteint
<!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(); }
Si vous souhaitez en savoir plus sur la programmation, faites attention à la colonne formation php !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!