PHP实现阿里大鱼短信验证的实例代码


Posted in PHP onJuly 10, 2017

最近想实现PHP实现短信验证的效果,做PC网站的时候,可以通过注册用户需要使用短信验证的功能,或者找回密码,以及验证用户的信息等等功能,发现了阿里大鱼。留个笔记

第一步

登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名

PHP实现阿里大鱼短信验证的实例代码

PHP实现阿里大鱼短信验证的实例代码

第二步

在应用管理中选择SDK下载,或者直接点击https://3water.com/softs/312325.html下载,免费的哦亲

把下载好的资源解压放到ThinkPHP\Library\Vendor目录下如图

PHP实现阿里大鱼短信验证的实例代码PHP实现阿里大鱼短信验证的实例代码

并不是所有的php文件都需要,就用如图所示Alidayu文件夹下那几个php文件,把Alidayu里面的php文件分别打开,在开始的一行添加代码(如果你下载的来自我发的链接,那就没必要添加这个代码了,因为我添加过了)

namespace Vendor\Alidayu;

目的是为了在调用的时候不至于引入失败

第三步

可以写HTML了

<div class="form-group">
 <div class="field field-icon-right">
  <input type="text" id="admin" class="input" name="admin" placeholder="用户名" data-validate="required:请填写用户名,length#>=5:用户长度不符合要求" />
  <span class="icon icon-user"></span>
 </div>
</div>
<div class="form-group">
 <div class="field field-icon-right">
  <input id="mobile" type="tel" class="input" name="mobile" placeholder="手机号码" onblur="checkmobile(this)" />
  <span class="icon icon-mobile"></span>
 </div>
</div>
<button id="sendmsg">获取验证码</button>

第四步

写入JQ代码(功能是,发送验证码后倒计时,并且POST传递后台,后台返回的数据0,1,2分别对应不同的功能)这段代码是参考别人的

<script >

 /*-------------------------------------------*/
 var InterValObj; //timer变量,控制时间
 var count = 60; //间隔函数,1秒执行
 var curCount;//当前剩余秒数
 var code = ""; //验证码
 var codeLength = 6;//验证码长度

 $(function () {
  $('#sendmsg').click(function () {
   $.ajax({
    type: "POST",
    url: "/User/folder/child/obtainyzm",
    data: "admin=" + $('#admin').val()+"&mobile="+$("#mobile").val() ,
    success: function (result) {
     if(result==0){
      curCount = count;
      //设置button效果,开始计时
      $("#sendmsg").css("background-color", "LightSkyBlue");
      $("#sendmsg").attr("disabled", "true");
      $("#sendmsg").val("获取" + curCount + "秒");
      InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
      // alert("验证码发送成功,请查收!");
     }
     if(result==1){

      alert("用户名和手机号不匹配!");
     }
     if(result==2){

      alert("用户名不存在!");
     }

    },
    dataType: 'json'

   })
  })
 })

 function SetRemainTime() {

  if (curCount == 0) {
   window.clearInterval(InterValObj);//停止计时器
   $("#sendmsg").removeAttr("disabled");//启用按钮
   $("#sendmsg").css("background-color", "");
   $("#sendmsg").val("重发验证码");
   code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
  }
  else {
   curCount--;
   $("#sendmsg").val("获取" + curCount + "秒");
  }
 }
</script>

上面有两个参数admin和mobile分别代表用户名和手机号码。

第五步

写入功能代码

public function obtainyzm(){

 $mobile = $_POST['mobile'];//获取手机号码
 $admin =$_POST['admin'];//获取用户名

 $user = M('db_admin')->where(array('admin'=>$admin))->find();

 /************引入*************/
 Vendor('Alidayu.TopClient');
 Vendor('Alidayu.AlibabaAliqinFcSmsNumSendRequest');
 Vendor('Alidayu.ResultSet');
 Vendor('Alidayu.RequestCheckUtil');

 $c = new \Vendor\Alidayu\TopClient;
 $req = new \Vendor\Alidayu\AlibabaAliqinFcSmsNumSendRequest;

 /*************配置***************/
 $code = randCode(4);//随机验证码
 $c->appkey = '23******';
 $c->secretKey = '6f73a******************';
 $req->setSmsType("normal");
 $req->setSmsFreeSignName("xx的测试");
 $req->setSmsParam("{code:'$code'}");
 $req->setRecNum("$mobile");
 $req->setSmsTemplateCode("SMS_3******");

 if($user)
 {
  if($user['mobile'] == $mobile)
  {
   /*************发送验证码短信,并把验证码作为新密码保存到服务器上***************/
   //$c->execute($req); //不要开启,开启后就会有短信到账,一次几分钱..在服务器上看新密码就好
   $newpwd['pwd'] = md5($code);
   D('db_admin')->where(array('admin'=>$user['admin']))->save($newpwd);
   $this->ajaxreturn(0);//用户名密码匹配
  }
  else
  {
   $this->ajaxreturn(1);//用户名和手机号不匹配
  }
 }
 else
 {
  $this->ajaxreturn(2); //用户名不存在
 }
 $this->display();
}//获取验证码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
收藏的一个php小偷的核心程序
Apr 09 PHP
坏狼的PHP学习教程之第1天
Jun 15 PHP
PHP 命令行参数详解及应用
May 18 PHP
探讨php中header的用法详解
Jun 07 PHP
PHPThumb图片处理实例
May 03 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 #PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 #PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 #PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 #PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 #PHP
form自动提交实例讲解
Jul 10 #PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 #PHP
You might like
php empty() 检查一个变量是否为空
2011/11/10 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
js动态切换图片的方法
2015/01/20 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
Python中import机制详解
2017/11/14 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Flask配置Cors跨域的实现
2019/07/12 Python
Python编写打字训练小程序
2019/09/26 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
办公室经理岗位职责
2014/01/01 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
消费者投诉书范文
2015/07/02 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
调研报告的主要写法
2019/04/18 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript