溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何實現(xiàn)發(fā)送驗證碼的功能

發(fā)布時間:2021-10-28 13:31:06 來源:億速云 閱讀:208 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(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)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(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)容。

php
AI