您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)php如何實現(xiàn)發(fā)送驗證碼的功能的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
php實現(xiàn)發(fā)送驗證碼功能的方法:1、創(chuàng)建好HTML和js文件;2、創(chuàng)建“Msm.php”文件,內(nèi)容為“public function sendmsm(){...}”;3、通過CURL發(fā)送HTTP請求即可。
本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php怎么實現(xiàn)發(fā)送驗證碼的功能?
PHP實現(xiàn)發(fā)送短信驗證碼:
一、html代碼
<li> <span>手機號碼:</span> <input type="text" placeholder="手機號碼" name="telephone"> </li> <li> <span>驗證碼:</span> <input type="text" placeholder="短信驗證碼" name="phonecode"> <span class="code_btn" onclick ="return get_svg();">獲取驗證碼</span> </li>
二、js代碼
/** * 發(fā)送驗證碼 * @return {[type]} [description] */ function get_svg() { var phone = $("input[name='telephone']").val(); if (!(/^1[34578]\d{9}$/.test(phone))) { layer.msg("請正確輸入手機號!"); return false; } var url = "/msm/sendmsm/phone/" + phone; $.get(url, function (resdata) { console.log(resdata); layer.msg(resdata.data); if (resdata.type == 1) { $(".code_btn").attr('onclick', "return false;"); listion_sendmsm(); } }) return false; } function listion_sendmsm() { var time = 61; setTime = setInterval(function () { if (time <= 1) { clearInterval(setTime); $(".code_btn").text("再發(fā)一次"); $(".code_btn").attr('onclick', "return get_svg();"); return; } time--; $(".code_btn").text(time + "s"); }, 1000); }
三、PHP代碼實現(xiàn)
Msm.php
/** * 發(fā)送短信 * @author * @return [type] [description] */ public function sendmsm() { $phone = input('phone'); if(!$phone){ return WPreturn('請輸入手機號碼!',-1); } $code = rand(1000,9999); $_SESSION['code'] = $code; $res = sendmessage($code ,$phone); if($res){ return WPreturn('發(fā)送成功',1); }else{ return WPreturn('發(fā)送驗證碼失敗!',-1); } } /* * * 類名:ChuanglanSmsApi * 功能:創(chuàng)藍短信接口請求類 * 詳細:構(gòu)造創(chuàng)藍短信接口請求,獲取遠程HTTP數(shù)據(jù) * 說明: * 以下代碼只是樣例代碼,使用第三方創(chuàng)藍發(fā)送短信接口。 * 該代碼僅供學習,只是提供一個參考。 */ public function sendmessage($code, $telephone) { $conf = getconf(''); if(!$code){ return false; } if(!$telephone){ return false; } $content = "您的驗證碼是:{$code},如非本人操作,請忽略此短信。"; //創(chuàng)藍接口參數(shù) $postArr = array ( 'account' => $conf['msm_appkey'], 'password' => $conf['msm_secretkey'], 'msg' => urlencode($content), 'phone' => $telephone, 'report' => true ); $result = $this->curlPost("http://smssh2.253.com/msg/send/json", $postArr); $json = json_decode($result); if($json -> code != 0){ return false; }else{ return true; } } /** * 通過CURL發(fā)送HTTP請求 * @param string $url //請求URL * @param array $postFields //請求參數(shù) * @return mixed * */ private function curlPost($url,$postFields){ $postFields = json_encode($postFields); $ch = curl_init (); curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charset=utf-8' //json版本需要填寫 Content-Type: application/json; ) ); curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_POST, 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $postFields); curl_setopt( $ch, CURLOPT_TIMEOUT,60); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0); $ret = curl_exec ( $ch ); if (false == $ret) { $result = curl_error( $ch); } else { $rsp = curl_getinfo( $ch, CURLINFO_HTTP_CODE); if (200 != $rsp) { $result = "請求狀態(tài) ". $rsp . " " . curl_error($ch); } else { $result = $ret; } } curl_close ( $ch ); return $result; }
感謝各位的閱讀!關(guān)于“php如何實現(xiàn)發(fā)送驗證碼的功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。