thinkPHP框架實現(xiàn)的短信接口驗證碼功能示例
本文實例講述了thinkPHP框架實現(xiàn)的短信接口驗證碼功能。分享給大家供大家參考,具體如下:
我用的是一款名叫 短信寶 的應用,新注冊的用戶可以免費3條測試短信,發(fā)現(xiàn)一個BUG,同個手機可以無限注冊,自己玩玩還是可以的。
里面的短信接口代碼什么信息都沒有,感覺看得不是很明白,自己測試了一遍,可以用,直接調(diào)用就可以的,如果要用到項目中還有很多細節(jié)要處理,比如 設置一個驗證碼的存活時間,還有點擊按鈕每隔一分鐘才能按一次,還有判斷這個用戶發(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> 請輸入手機號碼:<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},//參數(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" => "服務器空間不支持,請確認支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!", "30" => "密碼錯誤", "40" => "賬號不存在", "41" => "余額不足", "42" => "帳戶已過期", "43" => "IP地址限制", "50" => "內(nèi)容含有敏感詞" ); $num = rand(100000, 999999);//設置隨機數(shù) setcookie("numset", $num);//把值放入COOKIE中,關(guān)閉瀏覽器清除cookie; $smsapi = "http://api.smsbao.com/"; $user = "asdf75054138"; //短信平臺帳號 $pass = md5("asdf75054138"); //短信平臺密碼 $content="[Bug],來自四個火槍手的驗證,驗證碼:".$num;//要發(fā)送的短信內(nèi)容,隨便設置 $phone = $phonenum;//要發(fā)送短信的手機號碼 $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)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
- Thinkphp 在api開發(fā)中異常返回依然是html的解決方式
- thinkphp5框架API token身份驗證功能示例
- ThinkPHP框架整合微信支付之JSAPI模式圖文詳解
- ThinkPHP實現(xiàn)微信支付(jsapi支付)流程教程詳解
- thinkPHP5.0框架API優(yōu)化后的友好性分析
- Thinkphp5框架ajax接口實現(xiàn)方法分析
- thinkPHP5框架接口寫法簡單示例
- ThinkPHP框架實現(xiàn)的微信支付接口開發(fā)完整示例
- thinkPHP微信分享接口JSSDK用法實例
- thinkPHP框架對接支付寶即時到賬接口回調(diào)操作示例
- ThinkPHP和UCenter接口沖突的解決方法
- thinkphp使用url請求調(diào)用ThinkApi天氣教程【圖文詳解】
相關(guān)文章
在win7中搭建Linux+PHP 開發(fā)環(huán)境
這篇文章會以一個概覽的形式介紹我的 PHP 開發(fā)環(huán)境,列出我使用的工具,但配置過程不會太詳細。有需要的朋友可以參考下。2014-10-10百度地圖經(jīng)緯度轉(zhuǎn)換到騰訊地圖/Google 對應的經(jīng)緯度
本篇文章主要給大家介紹百度地圖經(jīng)緯度轉(zhuǎn)換到騰訊地圖/Google 對應的經(jīng)緯度.需要的朋友可以參考下2015-08-08Laravel 5.4因特殊字段太長導致migrations報錯的解決
這篇文章主要給大家介紹了關(guān)于Laravel 5.4因特殊字段太長導致migrations報錯的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。2017-10-10Swoole?webSocket客服IM消息系統(tǒng)方案解析
這篇文章主要為大家介紹了Swoole?webSocket客服IM消息系統(tǒng)方案解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03PHP curl實現(xiàn)抓取302跳轉(zhuǎn)后頁面的示例
這篇文章主要介紹了PHP curl實現(xiàn)抓取302跳轉(zhuǎn)后頁面的示例,主要是對CURLOPT_CUSTOMREQUEST參數(shù)的運用,需要的朋友可以參考下2014-07-07php靜態(tài)成員方法和靜態(tài)的成員屬性的使用方法
這篇文章主要介紹了php靜態(tài)成員方法和靜態(tài)的成員屬性的使用方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家使用的時候注意方法,需要的朋友可以參考下2017-10-10