首页 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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++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/}”即可。

织梦安装php7.0不成功怎么解决 织梦安装php7.0不成功怎么解决 Mar 23, 2023 am 11:11 AM

安装织梦时遇到问题是一个常见的情况,其中一个可能的问题就是无法成功安装php7.0。在本文中,我们将介绍如何解决这个问题。

CMS织梦数据库文件恢复方法详解 CMS织梦数据库文件恢复方法详解 Mar 13, 2024 pm 03:15 PM

数据库是网站运行的核心,存储着用户数据、文章内容等重要信息,因此在网站运营过程中,数据库文件的备份和恢复显得尤为重要。对于使用织梦CMS搭建的网站来说,数据库文件的恢复同样是一项关键任务。本文将详细介绍织梦CMS数据库文件的恢复方法,并提供具体的代码示例,帮助用户迅速恢复网站数据,保障网站正常运行。一、备份数据库文件在恢复数据库文件之前,首先需要确保已经进行

一文探讨织梦php5.7版本的新特性和优势 一文探讨织梦php5.7版本的新特性和优势 Mar 21, 2023 am 09:36 AM

织梦是一个非常著名的CMS,由于其简单易用的特点被许多网站使用,它的后台采用php进行开发,而最新的官方版本是织梦php 5.7。在本文中,我们将探讨织梦php5.7版本的新特性和优势。

浅析织梦所需的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