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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
php根据日期判断星座的函数分享
Feb 13 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
Joomla开启SEF的方法
May 04 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
PHP正则表达式笔记与实例详解
May 09 PHP
PHP dirname简单使用代码实例
Nov 13 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
DOMXML函数笔记
2006/10/09 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
js中this用法实例详解
2015/05/05 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
python opencv肤色检测的实现示例
2020/12/21 Python
介绍一下MD5加密算法
2016/11/12 面试题
应届生妇产科护士求职信
2013/10/27 职场文书
家长通知书教师评语
2014/04/17 职场文书
超市创业计划书
2014/04/24 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
2015年教研工作总结
2015/05/23 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript