laravel 整合 云之讯短信验证注册
生活随笔
收集整理的這篇文章主要介紹了
laravel 整合 云之讯短信验证注册
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SDK下載地址:?http://docs.ucpaas.com/doku.php?id=sms_sdk
首先把 Ucpaas.class.php文件放在根目錄app/common/sms/lib/下 (目錄自己隨意)
新建路由 (laravel5.4版本)
//短信注冊(cè)處理頁(yè)面Route::any('register','Home\RegisterController@index');//驗(yàn)證碼Route::get('code','Home\RegisterController@code');//驗(yàn)證短信驗(yàn)證碼Route::any('smsyzm','Home\RegisterController@smsyzm');RegisterController.php?控制器內(nèi)容
<?phpnamespace App\Http\Controllers\Home;use App\Models\Tel_user; use Illuminate\Http\Request;//使用類 use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Validator;//注冊(cè)控制器 短信 class RegisterController extends Controller{/* 驗(yàn)證 注冊(cè) */public function index(Request $request){if($request->isMethod('POST')){$valArr = $request->all();$valArr['code'] = base64_decode($request->input('code'));//Validator 類驗(yàn)證$validator = Validator::make($valArr,['name' => 'required|max:8','pwd' => 'required|min:6','pwd_confirmation' => 'required|min:6|same:pwd','phone' => 'required|unique:tel_user|regex:/^1[34578][0-9]{9}$/','code' => 'same:yzm',//生成賦值的驗(yàn)證碼'yzm' => 'required|between:4,4', //輸入的驗(yàn)證碼],['required' => ':attribute為必填項(xiàng)','min' => ':attribute長(zhǎng)度不符合要求','max' => ':attribute長(zhǎng)度不符合要求','phone.unique' =>':attribute只能接收一次驗(yàn)證碼','phone.regex' =>':attribute格式不對(duì)','pwd_confirmation.same' => ':attribute和密碼不一樣','between'=>'attribute長(zhǎng)度不符合要求','code.same' => ':attribute輸入錯(cuò)誤',],['name'=>'用戶名','pwd'=>'密碼','pwd_confirmation' => '確認(rèn)密碼','phone'=>'手機(jī)號(hào)','code'=>'驗(yàn)證碼','yzm'=>'驗(yàn)證碼',]);if($validator->fails()){//如果驗(yàn)證出錯(cuò)誤return response() -> json($validator->getMessageBag()->first());}$arr = $request->only(['name','phone']);$arr['pwd']= Crypt::encrypt($request->input('pwd'));//密碼加密$arr['status']=1;$arr['create_time']=time();if(Tel_user::insert($arr)){return 1;}else{return 0;}}return view("home.register");}/* 發(fā)短信 */public function smsyzm(Request $request){//dd($request->all());//載入ucpass類require_once("../app/common/sms/lib/Ucpaas.class.php");//初始化必填//填寫在開發(fā)者控制臺(tái)首頁(yè)上的Account Sid$options['accountsid']='xxxxxxxxxxxxxxxxx';//填寫在開發(fā)者控制臺(tái)首頁(yè)上的Auth Token$options['token']='xxxxxxxxxxxxxxxxx';//初始化 $options必填$ucpass = new \Ucpaas($options);$appid = "xxxxxxxxxxxxxxxxx"; //應(yīng)用的ID,可在開發(fā)者控制臺(tái)內(nèi)的短信產(chǎn)品下查看$templateid = "xxxxxx"; //可在后臺(tái)短信產(chǎn)品→選擇接入的應(yīng)用→短信模板-模板ID,查看該模板ID$yzm = base64_decode($request->input('yzm')); //多個(gè)參數(shù)使用英文逗號(hào)隔開(如:param=“a,b,c”),如為參數(shù)則留空 code進(jìn)行解密$time = 5;$param="$yzm,$time";$mobile = $request->input('yzmtel');//$_POST['yzmtel']$uid = "";//70字內(nèi)(含70字)計(jì)一條,超過70字,按67字/條計(jì)費(fèi),超過長(zhǎng)度短信平臺(tái)將會(huì)自動(dòng)分割為多條發(fā)送。分割后的多條短信將按照具體占用條數(shù)計(jì)費(fèi)。echo $ucpass->SendSms($appid,$templateid,$param,$mobile,$uid);}/*生成驗(yàn)證碼*/public function code(){$code_len=4;$code=array_merge(range('A','Z'),range('a','z'),range(1,9));//需要用到的數(shù)字或字母$keyCode=array_rand($code,$code_len);//真正的驗(yàn)證碼對(duì)應(yīng)的$code的鍵值if($code_len==1){$keyCode=array($keyCode);}shuffle($keyCode);//打亂數(shù)組$verifyCode="";foreach ($keyCode as $key){$verifyCode.=$code[$key];//真正驗(yàn)證碼}echo base64_encode($verifyCode); //加密}}register.blade.php 模板文件 (用的weui)
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>手機(jī)驗(yàn)證碼注冊(cè)頁(yè)面</title><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"><link rel="stylesheet" href="{{asset('style/weui/css/weui.css')}}"/><link rel="stylesheet" href="{{asset('style/weui/css/weuix.css')}}"/><script src="{{asset('style/weui/js/zepto.min.js')}}"></script><script src="{{asset('style/weui/js/zepto.weui.js')}}"></script><script type="text/javascript">var countdown=60;function settime(obj){//60秒倒計(jì)時(shí)if (countdown == 0){obj.removeAttribute("disabled");obj.value="發(fā)送短信驗(yàn)證碼";countdown = 60;return;}else{obj.setAttribute("disabled", true);obj.value="重新發(fā)送(" + countdown + ")";countdown--;}setTimeout(function() {settime(obj) },1000)}$(document).ready(function() {//清除輸入文字信息function cleartxt(obj){$(obj).prev().find('.weui-input').val("");return false;};//點(diǎn)擊發(fā)送短信驗(yàn)證碼$("#yzmfs").click(function () {//確保手機(jī)號(hào)不為空var mobile=$("#phone").val();if(mobile.length==0){$.toptip('請(qǐng)輸入手機(jī)號(hào)碼!');$("#phone").focus();return false;}if(mobile.length!=11){$.toptip('請(qǐng)輸入11位手機(jī)號(hào)!');$("#phone").focus();return false;}var myreg = /^((1[3|4|5|8][0-9]{1})+\d{8})$/;if(!myreg.test(mobile)){$.toptip('請(qǐng)輸入正確的手機(jī)號(hào)碼!');document.getElementById("phone").focus();return false;}//點(diǎn)擊發(fā)送短信驗(yàn)證碼$.ajax({async : false,type: "get",url: "{{url('code')}}", //data: {},success: function (data) {//發(fā)送短信驗(yàn)證碼$("#code").val(data); //獲取生成驗(yàn)證碼賦值 加密$.ajax({async : false,type: "post",url: "{{url('smsyzm')}}", //data: {"yzm": data,'yzmtel': $('#phone').val(),'_token':'{{csrf_token()}}'},dataType: "json",success: function (data) {}});}});})})//注冊(cè) ajax提交function register(){var name = $("#name").val();var pwd = $("#pwd").val();var pwd_confirmation = $("#pwd_confirmation").val();var phone = $("#phone").val();var code = $("#code").val();var yzm = $("#yzm").val();//手動(dòng)輸入的驗(yàn)證碼$.post("{{url('register')}}",{"name":name,"pwd":pwd,"pwd_confirmation":pwd_confirmation,"phone":phone,"code":code,"yzm":yzm,"_token":"{{csrf_token()}}",},function(data,status){//$.toptip(data);if(data==1){$.toast("注冊(cè)成功");window.location.href="http://www.xxxxxx.com/";}else if(data==0){$.toast("注冊(cè)失敗", "forbidden");}else{$.toptip(data);}});}</script></head> <body> <form action="" onsubmit="return false;" id="formRegister">{{csrf_field()}}<div class="weui-cells weui-cells_form"><div class="weui-cell margin5 margin15 border-radius w"><div class="weui-cell__hd"><label class="weui-label">用戶名</label></div><div class="weui-cell__bd"><input class="weui-input" placeholder="請(qǐng)輸入用戶名" type="text" name="name" id="name"></div><i class="weui-icon-clear" onclick="cleartxt(this)"></i></div><div class="weui-cell margin5 margin15 border-radius w"><div class="weui-cell__hd"><label class="weui-label">密碼</label></div><div class="weui-cell__bd"><input class="weui-input" placeholder="請(qǐng)輸入密碼" type="password" name="pwd" id="pwd"></div><i class="weui-icon-clear" onclick="cleartxt(this)"></i></div><div class="weui-cell margin5 margin15 border-radius w"><div class="weui-cell__hd"><label class="weui-label">確認(rèn)密碼</label></div><div class="weui-cell__bd"><input class="weui-input" placeholder="請(qǐng)重復(fù)輸入密碼" type="password" name="pwd_confirmation" id="pwd_confirmation"></div><i class="weui-icon-clear" onclick="cleartxt(this)"></i></div><div class="weui-cell margin5 margin15 border-radius w"><div class="weui-cell__hd"><label class="weui-label">手機(jī)號(hào)</label></div><div class="weui-cell__bd"><input class="weui-input" placeholder="請(qǐng)輸入手機(jī)號(hào)" type="number" name="phone" id="phone"></div><i class="weui-icon-clear" onclick="cleartxt(this)"></i></div><!--<input id="msg" hidden>--><input id="code" hidden name="code"><div class="weui-cell margin5 margin15 border-radius w"><div class="weui-cell__bd"><input class="weui-input" type="text" id="yzm" name="yzm"></div><i class="weui-icon-clear" onclick="cleartxt(this)"></i><div class="weui-cell__hd"><input class="weui-input" type="button" id="yzmfs" value="發(fā)送短信驗(yàn)證碼" onclick="settime(this)" /></div></div><div class="weui-btn-area"><input class="weui-btn weui-btn_primary" type="submit" value="注冊(cè)" onclick="register()"></div></div></form> </body></html>數(shù)據(jù)表:
總結(jié)
以上是生活随笔為你收集整理的laravel 整合 云之讯短信验证注册的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac版绿坝
- 下一篇: 搭建网站基本步骤(搭建一个网站的步骤)