本文實例講述了thinkPHP框架實現(xiàn)的短信接口驗證碼功能。分享給大家供大家參考,具體如下:
我用的是一款名叫 短信寶 的應(yīng)用,新注冊的用戶可以免費(fèi)3條測試短信,發(fā)現(xiàn)一個BUG,同個手機(jī)可以無限注冊,自己玩玩還是可以的。
里面的短信接口代碼什么信息都沒有,感覺看得不是很明白,自己測試了一遍,可以用,直接調(diào)用就可以的,如果要用到項目中還有很多細(xì)節(jié)要處理,比如 設(shè)置一個驗證碼的存活時間,還有點擊按鈕每隔一分鐘才能按一次,還有判斷這個用戶發(fā)的短信另一個用戶能不能用,以后有時間再接下去做,現(xiàn)在先來個簡易版的
視圖層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>
請輸入手機(jī)號碼: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();//手機(jī)號碼
$.post(
"{:U('smsbao')}",//傳遞的方法
{phone1:phone},//參數(shù)
function (data){
if(data == '1'){
alert('輸入框不能為空');
}else if(data == '2'){
alert('輸入的值為非數(shù)字');
}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') );//接收到的參數(shù)
//首先判斷電話為不為空
if(empty($phonenum) ){
$this->ajaxReturn('1');
}
//判斷是否為數(shù)字
$boolphone = is_numeric($phonenum);
if($boolphone){
$statusStr = array(
"0" => "短信發(fā)送成功",
"-1" => "參數(shù)不全",
"-2" => "服務(wù)器空間不支持,請確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!",
"30" => "密碼錯誤",
"40" => "賬號不存在",
"41" => "余額不足",
"42" => "帳戶已過期",
"43" => "IP地址限制",
"50" => "內(nèi)容含有敏感詞"
);
$num = rand(100000, 999999);//設(shè)置隨機(jī)數(shù)
setcookie("numset", $num);//把值放入COOKIE中,關(guān)閉瀏覽器清除cookie;
$smsapi = "http://api.smsbao.com/";
$user = "asdf75054138"; //短信平臺帳號
$pass = md5("asdf75054138"); //短信平臺密碼
$content="[Bug],來自四個火槍手的驗證,驗證碼:".$num;//要發(fā)送的短信內(nèi)容,隨便設(shè)置
$phone = $phonenum;//要發(fā)送短信的手機(jī)號碼
$sendurl = $smsapi."sms?u=".$user."p=".$pass."m=".$phone."c=".urlencode($content);//固定格式
$result =file_get_contents($sendurl);//固定格式
$this->ajaxReturn( $statusStr[$result] );//短信是否發(fā)送成功
}else{
$this->ajaxReturn( '2' );
}
}
}
各種效果圖:
附件
短信寶url:http://www.cocsms.com/
直接注冊一個帳號,彈出讓你用一條短信測試的不要測試,不然會損失一條。
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
您可能感興趣的文章:- ThinkPHP5.1驗證碼功能實現(xiàn)的示例代碼
- ThinkPHP5&5.1實現(xiàn)驗證碼的生成、使用及點擊刷新功能示例
- thinkphp5.1驗證碼及驗證碼驗證功能的實現(xiàn)詳解
- tp5(thinkPHP5框架)captcha驗證碼配置及驗證操作示例
- thinkPHP5.0框架驗證碼調(diào)用及點擊圖片刷新簡單實現(xiàn)方法
- thinkPHP實現(xiàn)的驗證碼登錄功能示例
- 詳解ThinkPHP3.2.3驗證碼顯示、刷新、校驗
- thinkPHP中驗證碼的簡單實現(xiàn)方法
- thinkphp自帶驗證碼全面解析
- Thinkphp極驗滑動驗證碼實現(xiàn)步驟解析