Thinkphp框架 -- 短信接口验证码
Posted 玻璃门
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thinkphp框架 -- 短信接口验证码相关的知识,希望对你有一定的参考价值。
我用的是一款名叫 短信宝 的应用,新注册的用户可以免费3条测试短信,发现一个BUG,同个手机可以无限注册,自己玩玩还是可以的。
里面的短信接口代码什么信息都没有,感觉看得不是很明白,自己测试了一遍,可以用,直接调用就可以的,如果要用到项目中还有很多细节要处理,比如 设置一个验证码的存活时间,还有点击按钮每隔一分钟才能按一次,还有判断这个用户发的短信另一个用户能不能用,以后有时间再接下去做,现在先来个简易版的
视图层View
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Ajax无刷新上传</title> 6 </head> 7 <script type="text/javascript" src="__PUBLIC__/js/jquery-1.10.2.min.js"></script> 8 9 <body> 10 <div> 11 请输入手机号码:<input type="text" name="phone" class="phone"> 12 </div> 13 <div> 14 <a href="javascript:;" class="butphone">点击获取短信验证码</a> 15 </div> 16 </body> 17 <script type="text/javascript"> 18 19 $(\'.butphone\').click(function(){ 20 21 var phone = $(\'.phone\').val();//手机号码 22 23 $.post( 24 25 "{:U(\'smsbao\')}",//传递的方法 26 27 {phone1:phone},//参数 28 29 function (data){ 30 31 if(data == \'1\'){ 32 alert(\'输入框不能为空\'); 33 }else if(data == \'2\'){ 34 alert(\'输入的值为非数字\'); 35 }else{ 36 alert(data); 37 } 38 39 }, 40 \'json\' 41 ) 42 }) 43 </script> 44 45 </html>
控制器层Controller
1 <?php 2 namespace Home\\Controller; 3 use Think\\Controller; 4 class IndexController extends Controller 5 { 6 //视图 7 public function index() 8 { 9 $this->display(); 10 } 11 12 //短信接口 13 public function smsbao() 14 { 15 $phonenum = trim( I(\'post.phone1\') );//接收到的参数 16 17 //首先判断电话为不为空 18 if(empty($phonenum) ){ 19 20 $this->ajaxReturn(\'1\'); 21 } 22 23 //判断是否为数字 24 $boolphone = is_numeric($phonenum); 25 26 if($boolphone){ 27 28 $statusStr = array( 29 "0" => "短信发送成功", 30 "-1" => "参数不全", 31 "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!", 32 "30" => "密码错误", 33 "40" => "账号不存在", 34 "41" => "余额不足", 35 "42" => "帐户已过期", 36 "43" => "IP地址限制", 37 "50" => "内容含有敏感词" 38 ); 39 $num = rand(100000, 999999);//设置随机数 40 41 setcookie("numset", $num);//把值放入COOKIE中,关闭浏览器清除cookie; 42 43 $smsapi = "http://api.smsbao.com/"; 44 45 $user = "asdf75054138"; //短信平台帐号 46 47 $pass = md5("asdf75054138"); //短信平台密码 48 49 $content="[Bug],来自四个火枪手的验证,验证码:".$num;//要发送的短信内容,随便设置 50 51 $phone = $phonenum;//要发送短信的手机号码 52 53 $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);//固定格式 54 55 $result =file_get_contents($sendurl);//固定格式 56 57 $this->ajaxReturn( $statusStr[$result] );//短信是否发送成功 58 59 }else{ 60 $this->ajaxReturn( \'2\' ); 61 } 62 63 } 64 }
各种效果图:
附件
短信宝url:http://www.cocsms.com/
直接注册一个帐号,弹出让你用一条短信测试的不要测试,不然会损失一条。
以上是关于Thinkphp框架 -- 短信接口验证码的主要内容,如果未能解决你的问题,请参考以下文章