thinkPHP框架实现的短信接口验证码功能示例


Posted in PHP onJune 20, 2018

本文实例讲述了thinkPHP框架实现的短信接口验证码功能。分享给大家供大家参考,具体如下:

我用的是一款名叫 短信宝 的应用,新注册的用户可以免费3条测试短信,发现一个BUG,同个手机可以无限注册,自己玩玩还是可以的。

里面的短信接口代码什么信息都没有,感觉看得不是很明白,自己测试了一遍,可以用,直接调用就可以的,如果要用到项目中还有很多细节要处理,比如 设置一个验证码的存活时间,还有点击按钮每隔一分钟才能按一次,还有判断这个用户发的短信另一个用户能不能用,以后有时间再接下去做,现在先来个简易版的

视图层View

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Ajax无刷新上传</title>
</head>
<script type="text/javascript" src="__PUBLIC__/js/jquery-1.10.2.min.js"></script>
<body>
  <div>
    请输入手机号码:<input type="text" name="phone" class="phone">
  </div>
  <div>
    <a href="javascript:;" rel="external nofollow" class="butphone">点击获取短信验证码</a>
  </div>
</body>
  <script type="text/javascript">
    $('.butphone').click(function(){
      var phone = $('.phone').val();//手机号码
      $.post(
        "{:U('smsbao')}",//传递的方法
        {phone1:phone},//参数
        function (data){
          if(data == '1'){
            alert('输入框不能为空');
          }else if(data == '2'){
            alert('输入的值为非数字');
          }else{
            alert(data);
          }
          },
          'json'
        )
    })
  </script>
</html>

控制器层Controller

<?php
  namespace Home\Controller;
  use Think\Controller;
  class IndexController extends Controller 
  {
    //视图
    public function index()
    {
      $this->display();
    }
    //短信接口 
    public function smsbao()
    {  
      $phonenum = trim( I('post.phone1') );//接收到的参数
      //首先判断电话为不为空
      if(empty($phonenum) ){
        $this->ajaxReturn('1');
      }
      //判断是否为数字
      $boolphone = is_numeric($phonenum);
      if($boolphone){
        $statusStr = array(
          "0"   => "短信发送成功",
          "-1" => "参数不全",
          "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
          "30" => "密码错误",
          "40" => "账号不存在",
          "41" => "余额不足",
          "42" => "帐户已过期",
          "43" => "IP地址限制",
          "50" => "内容含有敏感词"
          );
          $num = rand(100000, 999999);//设置随机数
          setcookie("numset", $num);//把值放入COOKIE中,关闭浏览器清除cookie;
          $smsapi = "http://api.smsbao.com/";
          $user = "asdf75054138"; //短信平台帐号
          $pass = md5("asdf75054138"); //短信平台密码
          $content="[Bug],来自四个火枪手的验证,验证码:".$num;//要发送的短信内容,随便设置
          $phone = $phonenum;//要发送短信的手机号码
          $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);//固定格式
          $result =file_get_contents($sendurl);//固定格式
          $this->ajaxReturn( $statusStr[$result] );//短信是否发送成功
        }else{
            $this->ajaxReturn( '2' );
        }
      }
  }

各种效果图:

thinkPHP框架实现的短信接口验证码功能示例

thinkPHP框架实现的短信接口验证码功能示例

thinkPHP框架实现的短信接口验证码功能示例

thinkPHP框架实现的短信接口验证码功能示例

附件

短信宝url:http://www.cocsms.com/

直接注册一个帐号,弹出让你用一条短信测试的不要测试,不然会损失一条。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
phpMyAdmin 安装及问题总结
May 28 PHP
php 一元分词算法
Nov 30 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP文件缓存类示例分享
Jan 30 PHP
PHP文件缓存类实现代码
Oct 26 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 #PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 #PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 #PHP
总结PHP代码规范、流程规范、git规范
Jun 18 #PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 #PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 #PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 #PHP
You might like
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
jquery replace方法去空格
2017/05/08 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
python发送邮件脚本
2018/05/22 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
对python中return与yield的区别详解
2020/03/12 Python
Django之腾讯云短信的实现
2020/06/12 Python
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
应届毕业生个人求职信范文
2014/01/29 职场文书
高中军训感言500字
2014/02/24 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
施工安全标语
2014/06/07 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
导游词之河北野三坡
2019/12/11 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang
mysql的数据压缩性能对比详情
2021/11/07 MySQL