首頁 CMS教程 DEDECMS 織夢簡訊驗證碼功能怎麼實現

織夢簡訊驗證碼功能怎麼實現

Dec 13, 2019 am 09:50 AM
織夢

織夢簡訊驗證碼功能怎麼實現

織夢簡訊驗證碼功能怎麼實現?

現在大部分網站都需要用短信驗證碼,因為織夢官方沒有短信驗證碼插件,所以寫了幾個短信驗證碼插件,一個使用的是阿里雲的短信驗證碼接口,一個使用的是阿里大於的短信驗證碼接口,一個使用的是阿里通信短信驗證碼接口,另外一個使用的是雲之訊的短信接口。

推薦學習:織夢cms

下面的教學包含2個織夢簡訊驗證碼介面。

織夢會員簡訊註冊需要修改的地方:

1、需要建立一個表格來對驗證碼進行記錄,防止多次傳送,這裡建立了一個phonecode表。

2、member/templets/reg-new.htm (註冊模版新增元素)

3、member/templets/js/reg_new.js (驗證手機號碼)

4、member/index_do.php (根據後台設置,判斷是否發送註冊驗證碼)

#5、member/reg_new.php (驗證、記錄)

a.使用阿里雲短信介面存取:

需要在member/index_do.php對應的位置插入阿里雲簡訊介面程式碼。特別要注意的是,阿里雲短信官方demo文檔是大神寫的,所以普通人用起來會報命名空間錯誤,這個需要自己注意。另外需要更新下短息模板,現在阿里短信模板審核非常嚴格,不允許有其他變量,之前並沒有這個問題。所以,審核不過的時候,需要減少變數。 (目前已經無法開通阿里雲短信接口,新開通的是阿里通信接口,不能使用這段代碼,只適合很久之前就開通過阿里雲短信的人)

function getrandchar($length){
    $str = null;
    $strPol = "0123456789abcdefghijklmnopqrstuvwxyz";
    $max = strlen($strPol)-1;
        for($i=0;$i<$length;$i++){
        $str.=$strPol[rand(0,$max)];
        }
        return $str;
    }
    $code = getrandchar(5);
  
    require_once(DEDEINC.&#39;/aliyun-php-sdk-core/Config.php&#39;);
    use Sms\Request\V20160927 as Sms;
    $iClientProfile = DefaultProfile::getProfile("cn-shenzhen", "your accessKey", "your accessSecret"); //登录阿里云查看: "your accessKey", "your accessSecret"
    $client = new DefaultAcsClient($iClientProfile);   
    $request = new Sms\SingleSendSmsRequest();
    $request->setSignName("签名");/*签名名称*/
    $request->setTemplateCode("SMS_1111");/*模板code*/
    $request->setRecNum($phone);/*目标手机号*/
    $request->setParamString("{\"code\":\"$code\",\"tel\":\"电话号码\"}");/*模板变量,请确保跟审核过的短信模版变量一致,数字一定要转换为字符串*/
    try {
        $response = $client->getAcsResponse($request);
        print_r($response);
    }
    catch (ClientException  $e) {
        print_r($e->getErrorCode());  
        print_r($e->getErrorMessage());  
    }
    catch (ServerException  $e) {  
        print_r($e->getErrorCode());  
        print_r($e->getErrorMessage());
    }
      
    $inquery = " INSERT INTO `dede_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`) VALUES ( &#39;$ip&#39;,&#39;$to&#39;,&#39;$code&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
    $rs = $dsql->ExecuteNoneQuery2($inquery);
    if( $rs = 1 ){
        ShowMsg(&#39;发送成功,请注意查收!&#39;,&#39;-1&#39;);
        exit();
    }
    exit();
登入後複製

附上阿里雲短信模版:驗證碼:${code}。您正在註冊,如非您本人操作,請忽略此簡訊。如有疑問請與我們聯絡! 電話:${tel}

b.使用阿里大魚的簡訊介面接取:

相同的需求在member/index_do.php對應的位置插入以下程式碼。

function getrandchar($length){
$str = null;
//$strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
$strPol = "0123456789abcdefghijklmnopqrstuvwxyz";
$max = strlen($strPol)-1;
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
}
return $str;
}
$code = getrandchar(5);
  
require_once(DEDEINC.&#39;/alidayu-php-sdk/TopSdk.php&#39;);
$client = new TopClient;
$client ->appkey = &#39;111111&#39; ; //登录阿里大于查看appkey。
$client ->secretKey = &#39;aaaaaaaaaaaaaa&#39; ; //登录阿里大于查看secret。
$req = new AlibabaAliqinFcSmsNumSendRequest;
$req ->setExtend( "" );
$req ->setSmsType( "normal" );
$req ->setSmsFreeSignName( "城子居" ); /*签名名称*/
$req ->setSmsParam( "{\"code\":\"$code\",\"name\":\"注册\"}" ); /*模板变量,请确保跟审核过的短信模版变量一致,数字一定要转换为字符串*/
$req ->setRecNum($phone);/*目标手机号*/
$req ->setSmsTemplateCode( "SMS_1111111" );//登录阿里大于查看/*模板ID编号*/
$resp = $client ->execute( $req );
  
$inquery = " INSERT INTO `imm_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`)  VALUES ( &#39;$ip&#39;,&#39;$to&#39;,&#39;$code&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
$rs = $dsql->ExecuteNoneQuery2($inquery);
if( $rs = 1 ){
ShowMsg(&#39;发送成功,请注意查收!&#39;,&#39;-1&#39;);
exit();
}
exit();
登入後複製

c.使用最新的阿里通信短信接口接入:

function getrandchar($length){
$str = null;
//$strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
$strPol = "0123456789";
$max = strlen($strPol)-1;
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
}
return $str;
}
$number = getrandchar(4);
  
require_once(DEDEINC.&#39;/aliyun-php-sdk-core/Config.php&#39;);
require_once(DEDEINC.&#39;/Dysmsapi/Request/V20170525/SendSmsRequest.php&#39;);
require_once(DEDEINC.&#39;/Dysmsapi/Request/V20170525/QuerySendDetailsRequest.php&#39;);
  
function sendSms() {
global $phone, $number;
  
//此处需要替换成自己的AK信息
$accessKeyId = "yourAccessKeyId";
$accessKeySecret = "yourAccessKeySecret";
//短信API产品名
$product = "Dysmsapi";
//短信API产品域名
$domain = "dysmsapi.aliyuncs.com";
//暂时不支持多Region
$region = "cn-beijing";
  
//初始化访问的acsCleint
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndpoint("cn-beijing", "cn-beijing", $product, $domain);
$acsClient= new DefaultAcsClient($profile);
  
$request = new Dysmsapi\Request\V20170525\SendSmsRequest;
//必填-短信接收号码
$request->setPhoneNumbers($phone);
//必填-短信签名
$request->setSignName("99商铺网");
//必填-短信模板Code
$request->setTemplateCode("SMS_74725029");
//选填-假如模板中存在变量需要替换则为必填(JSON格式)
$request->setTemplateParam("{\"number\":\"$number\"}");
//选填-发送短信流水号
$request->setOutId("1234");
  
//发起访问请求
$acsResponse = $acsClient->getAcsResponse($request);
}
  
sendSms();
  
$inquery = " INSERT INTO `imm_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`)  VALUES ( &#39;$ip&#39;,&#39;$phone&#39;,&#39;$number&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
$rs = $dsql->ExecuteNoneQuery2($inquery);
if( $rs = 1 ){
echo "发送成功,请注意查收!";
exit();
}
exit();
登入後複製

到這裡阿里系的3個短信接口就全都在這裡了,對應的SDK需要在阿里雲官方查找下載。

d.使用雲端之訊簡訊介面存取:

同樣的需求在member/index_do.php對應的位置插入雲端之訊簡訊介面程式碼。

function getrandchar($length){
$str = null;
$strPol = "0123456789abcdefghijklmnopqrstuvwxyz";
$max = strlen($strPol)-1;
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
}
return $str;
}
require_once(DEDEINC.&#39;/ucpaas.class.php&#39;);
$options[&#39;accountsid&#39;]=&#39;&#39;;  //对应ucpaas.com用户ID
$options[&#39;token&#39;]=&#39;&#39;;  //对应ucpaas.com里面的用户token
$ucpass = new Ucpaas($options);
$appId = ""; //对应ucpaas.com里面的项目ID
$to = $phone;
$templateId = ""; //对应ucpaas.com里面的短信模版ID
$code = getrandchar(5);
$param= $code.&#39;,短信模版参数2&#39;.&#39;,短信模版参数3&#39;; // $code为生成的验证码,短信模版参数2,短信模版参数3,参数之间用英文逗号间隔。
$ucpass->templateSMS($appId,$to,$templateId,$param);
  
$inquery = " INSERT INTO `dede_phonecode` (`ip`,`phone`,`phonecode`,`used`,`sendtime`) VALUES ( &#39;$ip&#39;,&#39;$to&#39;,&#39;$code&#39;,&#39;1&#39;,&#39;$nowtime&#39;); ";
$rs = $dsql->ExecuteNoneQuery2($inquery);
if( $rs = 1 ){
ShowMsg(&#39;发送成功,请注意查收!&#39;,&#39;-1&#39;);
exit();
}
exit();
登入後複製

同樣的附上簡訊模版:驗證碼:{1}。您正在{2},如非您本人操作,請忽略此簡訊。如有疑問請與我們聯絡!  電話:{3} 

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

織夢如何導入css 織夢如何導入css Dec 03, 2020 pm 04:03 PM

織夢導入css的方法:1、將HTML模板檔案放到「templets」資料夾中;2、將HTML檔案的後綴改成「.htm」;3、在原先的樣式路徑前加上「{dede: global.cfg_templets_skin/}」即可。

一文探討織夢php5.7版本的新功能與優勢 一文探討織夢php5.7版本的新功能與優勢 Mar 21, 2023 am 09:36 AM

織夢是一個非常著名的CMS,由於其簡單易用的特點被許多網站使用,它的後台採用php進行開發,而最新的官方版本是織夢php 5.7。在本文中,我們將探討織夢php5.7版本的新功能與優點。

織夢安裝php7.0不成功怎麼解決 織夢安裝php7.0不成功怎麼解決 Mar 23, 2023 am 11:11 AM

安裝織夢時遇到問題是常見的情況,其中一個可能的問題就是無法成功安裝php7.0。在本文中,我們將介紹如何解決這個問題。

CMS織夢資料庫檔案復原方法詳解 CMS織夢資料庫檔案復原方法詳解 Mar 13, 2024 pm 03:15 PM

資料庫是網站運作的核心,儲存著使用者資料、文章內容等重要訊息,因此在網站運作過程中,資料庫檔案的備份和復原顯得格外重要。對於使用織夢CMS搭建的網站來說,資料庫檔案的復原同樣是一項關鍵任務。本文將詳細介紹織夢CMS資料庫檔案的復原方法,並提供具體的程式碼範例,幫助使用者迅速恢復網站數據,保障網站正常運作。一、備份資料庫檔案在恢復資料庫檔案之前,首先需要確保已經進行

淺析織夢所需的PHP版本和組件數量 淺析織夢所需的PHP版本和組件數量 Mar 21, 2023 am 10:50 AM

織夢是一款非常流行的網站建立系統,其架構是基於PHP語言建構的。因此,織夢需要PHP來運作。那麼,具體來講,織夢需要幾個PHP呢?這並不是一個簡單的問題。本文將會從以下幾個面向介紹織夢所需的PHP版本和組件數量。

cms是織夢嗎 cms是織夢嗎 Mar 01, 2023 am 09:58 AM

cms不是織夢,cms是指內容管理系統,而織夢只是cms的一種;織夢cms就是指織夢內容管理系統,而內容管理系統是一種位於WEB前端和後端辦公系統或流程之間的軟體系統;cms具有許多基於模板的優秀設計,可以加快網站開發的速度和減少開發的成本。

掌握織夢PHP5的關鍵要點 掌握織夢PHP5的關鍵要點 Mar 26, 2024 am 11:12 AM

織夢CMS是基於PHP5開發的開源內容管理系統,廣泛應用於網站建置領域。掌握織夢PHP5的關鍵要點,對開發者來說非常重要。本文將介紹一些關鍵要點,並提供具體的程式碼範例,幫助讀者更好地理解和應用織夢PHP5。一、檔案包含在織夢CMS的開發中,經常需要在不同的檔案之間進行資料共享和程式碼重複使用。 PHP的檔案包含功能是解決這個問題的有效方法。在織夢CMS中,常

織夢需要php什麼版本 織夢需要php什麼版本 Jun 06, 2023 pm 01:20 PM

織夢需要PHP 5.2版本及以上,其安裝方法:1、先安裝PHP並配置好環境;2、下載DedeCMS安裝包,並解壓縮到網站根目錄;3、打開網站URL,按照提示完成安裝;4、安裝完成後,透過http://localhost/yourwebsite存取即可存取到織夢後台。

See all articles