>백엔드 개발 >PHP 문제 >PHP에서 휴대폰 인증을 구현하는 방법

PHP에서 휴대폰 인증을 구현하는 방법

藏色散人
藏色散人원래의
2020-08-15 10:03:372504검색

PHP에서 휴대폰 확인을 구현하는 방법: 먼저 SMS 서비스 제공업체를 찾아 SMS 서비스에 액세스한 다음 웹사이트 정보 제출 페이지에서 정보 전송을 요청한 다음 서버가 SMS 서비스 제공업체와 통신하도록 하고 전송 요청을 제출합니다. ; 최종 통과 교환원은 단순히 사용자의 휴대폰으로 정보를 보냅니다.

PHP에서 휴대폰 인증을 구현하는 방법

추천: "PHP 비디오 튜토리얼"

php로 휴대폰 SMS 확인 기능 구현

요즘에는 웹사이트를 구축할 때 사용자 정보의 신뢰성을 보장하기 위해 문자 전송을 선택하는 경우가 많습니다. 인증번호 정보는 인증을 통과한 사용자만 등록할 수 있어 사용자의 연락처 정보가 100% 정확합니다. 오늘은 PHP에서 SMS 확인 기능을 구현하는 방법을 알려 드리겠습니다.

PHP에서 휴대폰 인증을 구현하는 방법

먼저 ​​​PHP 휴대폰 SMS 확인 기능 구현에 대한 기본 아이디어

1. SMS 서비스 제공자를 찾으려면 SMS 서비스에 접속하세요

2. 제출 페이지

3. 서버에서 SMS 서비스 제공업체와 통신하고 전송 요청을 제출합니다

4. SMS 서비스 제공업체가 운영자를 통해 사용자의 휴대폰으로 정보를 보냅니다

2. 달성

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>

셋째. SMS 서버 호출 SMS 인터페이스

작가가 편집한 페이지는 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);
?>

넷째: 다음과 같은 경우 SMS 인증 코드를 확인하세요. 양식 정보 제출 중

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

위 내용은 PHP에서 휴대폰 인증을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.