首頁 > 後端開發 > PHP問題 > php怎麼實作發送驗證碼的功能

php怎麼實作發送驗證碼的功能

藏色散人
發布: 2023-03-13 14:50:01
原創
4751 人瀏覽過

php實作發送驗證碼功能的方法:1、建立好HTML和js檔案;2、建立「Msm.php」文件,內容為「public function sendmsm(){...}」;3 、透過CURL發送HTTP請求即可。

php怎麼實作發送驗證碼的功能

本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦

php怎麼實作發送驗證碼的功能?

PHP實作發送簡訊驗證碼:

一、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程式碼

/**
 * 发送验证码
 * @return {[type]} [description]
 */
function get_svg() {
var phone = $("input[name=&#39;telephone&#39;]").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(&#39;onclick&#39;, "return false;");
listion_sendmsm();
}
})
return false;
}
 
function listion_sendmsm() {
var time = 61;
setTime = setInterval(function () {
if (time <= 1) {
clearInterval(setTime);
$(".code_btn").text("再发一次");
$(".code_btn").attr(&#39;onclick&#39;, "return get_svg();");
return;
}
time--;
$(".code_btn").text(time + "s");
 
}, 1000);
}
登入後複製

三、PHP程式碼實作

Msm.php

/**
 * 发送短信
 * @author 
 * @return [type] [description]
 */
public function sendmsm()
{
$phone = input(&#39;phone&#39;);
 
if(!$phone){
return WPreturn(&#39;请输入手机号码!&#39;,-1);
}
 
$code = rand(1000,9999);
$_SESSION[&#39;code&#39;] = $code;
$res = sendmessage($code ,$phone);
if($res){
return WPreturn(&#39;发送成功&#39;,1);
}else{
return WPreturn(&#39;发送验证码失败!&#39;,-1);
}
}
 
/* *
* 类名:ChuanglanSmsApi
* 功能:创蓝短信接口请求类
* 详细:构造创蓝短信接口请求,获取远程HTTP数据
* 说明:
* 以下代码只是样例代码,使用第三方创蓝发送短信接口。
* 该代码仅供学习,只是提供一个参考。
*/
public function sendmessage($code, $telephone)
{
$conf = getconf(&#39;&#39;);
 
if(!$code){
return false;
}
 
if(!$telephone){
return false;
}
$content = "您的验证码是:{$code},如非本人操作,请忽略此短信。";
//创蓝接口参数
$postArr = array (
&#39;account&#39;  =>  $conf[&#39;msm_appkey&#39;],
&#39;password&#39; => $conf[&#39;msm_secretkey&#39;],
&#39;msg&#39; => urlencode($content),
&#39;phone&#39; => $telephone,
&#39;report&#39; => true
);
 
$result = $this->curlPost("http://smssh1.253.com/msg/send/json", $postArr);
$json = json_decode($result);
if($json -> code != 0){
return false;
}else{
return true;
}
}
 
/**
 * 通过CURL发送HTTP请求
 * @param string $url  //请求URL
 * @param array $postFields //请求参数 
 * @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(
&#39;Content-Type: application/json; charset=utf-8&#39;   //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 = "请求状态 ". $rsp . " " . curl_error($ch);
} else {
$result = $ret;
}
}
curl_close ( $ch );
return $result;
}
登入後複製

#推薦學習:《PHP影片教學

以上是php怎麼實作發送驗證碼的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板