php短信驗(yàn)證碼60秒時(shí)間限定

我們?cè)趯?shí)際使用短信驗(yàn)證碼的時(shí)候,經(jīng)常會(huì)因?yàn)楦鞣N原因,收不到短信,那么用戶就會(huì)再重新請(qǐng)求一條,但是呢,一般的短信驗(yàn)證肯定是有時(shí)間間隔的,這樣做,第一是為了防止惡意點(diǎn)擊,一直發(fā)驗(yàn)證碼,導(dǎo)致驗(yàn)證碼消耗量巨大,二是擔(dān)心心急的用戶,兩三秒沒收到,就馬上點(diǎn)了,這下可能一下子要來好幾條,對(duì)用戶來說也是一種困擾,所以我想分享一下我剛做的這個(gè)功能,是用的互億無線的短信接口,因?yàn)楫吘购唵?,客服也不錯(cuò)的,蠻耐心。

好了,話不多說,現(xiàn)在送上代碼

//接口類型:互億無線觸發(fā)短信接口,支持發(fā)送驗(yàn)證碼短信、訂單通知短信等。

// 賬戶注冊(cè):請(qǐng)通過該地址開通賬戶http://user.ihuyi.com/register.html

// 注意事項(xiàng):

//(1)調(diào)試期間,請(qǐng)使用用系統(tǒng)默認(rèn)的短信內(nèi)容:您的驗(yàn)證碼是:【變量】。請(qǐng)不要把驗(yàn)證碼泄露給其他人。

//(2)請(qǐng)使用 APIID 及 APIKEY來調(diào)用接口,可在會(huì)員中心獲??;

//(3)該代碼僅供接入互億無線短信接口參考使用,客戶可根據(jù)實(shí)際需要自行編寫;

//開啟SESSION

session_start();

header("Content-type:text/html; charset=UTF-8");

//請(qǐng)求數(shù)據(jù)到短信接口,檢查環(huán)境是否 開啟 curl init。

function Post($curlPost,$url){

? ? ? ? $curl = curl_init();

? ? ? ? curl_setopt($curl, CURLOPT_URL, $url);

? ? ? ? curl_setopt($curl, CURLOPT_HEADER, false);

? ? ? ? curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

? ? ? ? curl_setopt($curl, CURLOPT_NOBODY, true);

? ? ? ? curl_setopt($curl, CURLOPT_POST, true);

? ? ? ? curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);

? ? ? ? $return_str = curl_exec($curl);

? ? ? ? curl_close($curl);

? ? ? ? return $return_str;

}

//將 xml數(shù)據(jù)轉(zhuǎn)換為數(shù)組格式。

function xml_to_array($xml){

? ? $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";

? ? if(preg_match_all($reg, $xml, $matches)){

? ? ? ? $count = count($matches[0]);

? ? ? ? for($i = 0; $i < $count; $i++){

? ? ? ? $subxml= $matches[2][$i];

? ? ? ? $key = $matches[1][$i];

? ? ? ? ? ? if(preg_match( $reg, $subxml )){

? ? ? ? ? ? ? ? $arr[$key] = xml_to_array( $subxml );

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? $arr[$key] = $subxml;

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? return $arr;

}

//random() 函數(shù)返回隨機(jī)整數(shù)。

function random($length = 6 , $numeric = 0) {

? ? PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);

? ? if($numeric) {

? ? ? ? $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));

? ? } else {

? ? ? ? $hash = '';

? ? ? ? $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';

? ? ? ? $max = strlen($chars) - 1;

? ? ? ? for($i = 0; $i < $length; $i++) {

? ? ? ? ? ? $hash .= $chars[mt_rand(0, $max)];

? ? ? ? }

? ? }

? ? return $hash;

}

//短信接口地址

$target = "http://106.ihuyi.com/webservice/sms.php?method=Submit";

//獲取手機(jī)號(hào)

$mobile = $_POST['mobile'];

//獲取驗(yàn)證碼

$send_code = $_POST['send_code'];

//生成的隨機(jī)數(shù)

$mobile_code = random(4,1);

if(empty($mobile)){

? ? exit('手機(jī)號(hào)碼不能為空');

}

//防用戶惡意請(qǐng)求

if(empty($_SESSION['send_code']) or $send_code!=$_SESSION['send_code']){

? ? exit('請(qǐng)求超時(shí),請(qǐng)刷新頁面后重試');

}

$post_data = "account=用戶名&password=密碼&mobile=".$mobile."&content=".rawurlencode("您的驗(yàn)證碼是:".$mobile_code."。請(qǐng)不要把驗(yàn)證碼泄露給其他人。");

//查看用戶名 登錄用戶中心->驗(yàn)證碼通知短信>產(chǎn)品總覽->API接口信息->APIID

//查看密碼 登錄用戶中心->驗(yàn)證碼通知短信>產(chǎn)品總覽->API接口信息->APIKEY

$gets =? xml_to_array(Post($post_data, $target));

if($gets['SubmitResult']['code']==2){

? ? $_SESSION['mobile'] = $mobile;

? ? $_SESSION['mobile_code'] = $mobile_code;

}

echo $gets['SubmitResult']['msg'];

---------------------

作者:@互億無線

來源:CSDN

原文:https://blog.csdn.net/weixin_43735367/article/details/84339861

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce閱讀 2,469評(píng)論 1 5
  • CURLOPT_RETURNTRANSFER 選項(xiàng):curl_setopt($ch, CURLOPT_RETURN...
    Talentisan閱讀 17,151評(píng)論 0 2
  • 一、什么是CURL? cURL 是一個(gè)利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議,如HTTP、FTP、...
    伊Summer閱讀 1,402評(píng)論 0 4
  • cURL是一個(gè)利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議和選項(xiàng),如HTTP、FTP、TELNET等,能...
    司馬東陽閱讀 1,520評(píng)論 0 6
  • 原文地址:PHPcURL庫函數(shù)抓取頁面內(nèi)容(轉(zhuǎn))作者:巴克 cURL是一個(gè)利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具...
    司馬東陽閱讀 1,267評(píng)論 0 3

友情鏈接更多精彩內(nèi)容