亚洲精品久久久久综合,卡一卡二卡三高清乱码网站,一边吃奶一边扎下边爽了,最近中文字幕完整版2018一页,国产经典三级av在线播放

價格不是我們的優(yōu)勢,品質(zhì)永遠是我們的追求!
當(dāng)前位置:首頁行業(yè)快訊 > php網(wǎng)站實現(xiàn)手機短信驗證碼功能流程及代碼
php網(wǎng)站實現(xiàn)手機短信驗證碼功能流程及代碼
來源:動力思維樂信  時間:2017-08-24 18:14

  現(xiàn)在有越來越多的網(wǎng)站會員注冊添加有短信驗證碼手機驗證功能,有效過濾了大量爛注冊,如何實現(xiàn)網(wǎng)站會員注冊手機驗證功能呢,下面以php語言為例,為大家介紹下網(wǎng)站實現(xiàn)手機短信驗證碼功能的流程和代碼供大家參考。

  第一、首先需要選擇一家短信驗證碼接口服務(wù)商,獲取短信接口api,另外現(xiàn)在很多正規(guī)公司都有完備的API接入文檔和代碼示例供參考。 推薦閱讀:樂信短信接口API

  第二、分析實現(xiàn)網(wǎng)站短信驗證碼功能的基本思路,主要有以下幾點:

  ① 要找到短信服務(wù)提供商,接入短信服務(wù);

 ?、?在網(wǎng)站信息提交頁面請求發(fā)送信息;

 ?、?服務(wù)器向短信服務(wù)提供商通信,提交發(fā)送請求;

 ?、?短信服務(wù)提供商通過運營商將信息發(fā)送到用戶的手機中。

  第三、實現(xiàn)網(wǎng)站手機短信驗證碼功能前端頁面效果,現(xiàn)分享一段代碼如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >

  <html xmlns>

  <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; //間隔函數(shù),1秒執(zhí)行

  var curCount;//當(dāng)前剩余秒數(shù)

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

  //產(chǎn)生驗證碼

  for (var i = 0; i < codeLength; i++) {

  code += parseInt(Math.random() * 9).toString();

  }

  //設(shè)置button效果,開始計時

  $("#btnSendCode").attr("disabled", "true");

  $("#btnSendCode").val("請在" + curCount + "秒內(nèi)輸入驗證碼");

  InterValObj = window.setInterval(SetRemainTime, 1000); //啟動計時器,1秒執(zhí)行一次

  //向后臺發(fā)送處理數(shù)據(jù)

  $.ajax({

  type: "POST", //用POST方式傳輸

  dataType: "text", //數(shù)據(jù)格式:JSON

  url: ’yanzhengma.php’, //目標(biāo)地址(根據(jù)實際地址)

  data: "&tel=" + tel + "&code=" + code,

  error: function (XMLHttpRequest, textStatus, errorThrown) { },

  success: function (msg){ }

  });

  }else{

  alert(’請?zhí)顚懯謾C號碼’);

  }

  }

  //timer處理函數(shù)

  function SetRemainTime() {

  if (curCount == 0) {

  window.clearInterval(InterValObj);//停止計時器

  $("#btnSendCode").removeAttr("disabled");//啟用按鈕

  $("#btnSendCode").val("重新發(fā)送驗證碼");

  code = ""; //清除驗證碼。如果不清除,過時間后,輸入收到的驗證碼依然有效

  }

  else {

  curCount--;

  $("#btnSendCode").val("請在" + curCount + "秒內(nèi)輸入驗證碼");

  }

  }

  </script>

  </head>

  <body>

  <input name="tel" id=tel type="text" />

  <input id="btnSendCode" type="button" value="發(fā)送驗證碼" onclick="sendMessage()" /></p>

  </body>

  </html>

  第四、調(diào)用短信服務(wù)商提供的短信接口,具體代碼如下: 

  <?php //提交短信

  $post_data = array();

  $post_data[’userid’] = 短信服務(wù)商提供ID;

  $post_data[’account’] = ’短信服務(wù)商提供用戶名’;

  $post_data[’password’] = ’短信服務(wù)商提供密碼’;

  // 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’); //短信內(nèi)容需要用urlencode編碼下

  $post_data[’mobile’] = $_POST["tel"];

  $post_data[’sendtime’] = ’’; //不定時發(fā)送,值為0,定時發(fā)送,輸入格式Y(jié)YYYMMDDHHmmss的日期值

  $url=’https://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); //如果需要將結(jié)果直接返回到變量里,那加上這句。

  $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();

  }

  第六、到這一步就網(wǎng)站的短信驗證碼功能已經(jīng)實現(xiàn),但還要經(jīng)過測試才能發(fā)現(xiàn)是否有錯誤,發(fā)現(xiàn)錯誤再進行調(diào)試。