最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序?qū)崿F(xiàn)手機(jī)驗(yàn)證碼登錄

 更新時(shí)間:2022年05月24日 11:12:09   作者:錒豪513  
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)手機(jī)驗(yàn)證碼登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

我們的微信小程序里面,手機(jī)驗(yàn)證碼登錄已經(jīng)成為不可缺少的一部門,為此,我寫(xiě)的這個(gè)手機(jī)驗(yàn)證碼登錄,這里我結(jié)合thinkphp6+微信小程序?qū)崿F(xiàn)

首先我們進(jìn)入小程序頁(yè)面:

wxml頁(yè)面:

<!--pages/phone/phone.wxml-->
<view class="container">
? <view class="title" ?style='height:{{statusBarHeight+100}}rpx;padding-top:{{statusBarHeight}}rpx;'>登錄</view>
? <form catchsubmit="login">
? ? <view class="inputView">
? ? ? <input class="inputText" value="{{phone}}" placeholder="請(qǐng)輸入手機(jī)號(hào)" name="phone" bindblur="phone" />
? ? </view>
? ? <view class="inputView">
? ? ? <input class="inputText" value="{[code]}" placeholder="請(qǐng)輸入驗(yàn)證碼" name="code" />
? ? ? <button class="line" disabled="{{disabled}}" size="mini" bindtap="sendcode">{{codebtn}}</button>
? ? ? </view>
? ? <view class="loginBtnView">
? ? ? <button class="loginBtn" type="primary" formType="submit">登錄</button>
? ? </view>
? </form>
</view>
?
<button type="primary" open-type="contact">在線咨詢</button>

js頁(yè)面:

Page({
?
? /**
? ?* 頁(yè)面的初始數(shù)據(jù)
? ?*/
? data: {
? ? windowHeight:0,
? ? phone:'',
? ? code:'',
? ? codebtn:'發(fā)送驗(yàn)證碼',
? ? disabled:false,
?
? },
? /**
? ?* 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
? ?*/
? onLoad: function (options) {
??
? },
? // 獲取輸入賬號(hào)?
? phone: function (e) {
? ? let phone = e.detail.value;
? ? let reg = /^[1][3,4,5,7,8][0-9]{9}$/;
? ? if (!reg.test(phone)) {
? ? ? wx.showToast({
? ? ? ? title: '手機(jī)號(hào)碼格式不正確',
? ? ? ? icon:"none",
? ? ? ? duration:2000
? ? ? })
? ? ? return false;
? ? }
? ? this.setData({
? ? ? phone: e.detail.value
? ? })
? },
? //發(fā)送驗(yàn)證碼
? sendcode(res){
? ? var phone=this.data.phone;
? ? var time = 60;
? ? var that=this;
? ? wx.request({
? ? ? url: 'http://www.easyadmin.com/api/phone',
? ? ? data:{
? ? ? ? phone:phone
? ? ? },
? ? ? success:res=>{
? ? ? ? if(res.data.code==200){
? ? ? ? ? wx.showToast({
? ? ? ? ? ? title: '驗(yàn)證碼已發(fā)送.請(qǐng)注意接收',
? ? ? ? ? ? icon:"success"
? ? ? ? ? }) ?
? ? ? ?
? ? ? ? ? var timers=setInterval(function () {
? ? ? ? ? ? time--;
? ? ? ? ? ? if (time>0){
? ? ? ? ? ? ? that.setData({
? ? ? ? ? ? ? ? codebtn:time,
? ? ? ? ? ? ? ? disabled:true
? ? ? ? ? ? ? });
? ? ? ? ? ? }else{
? ? ? ? ? ? ? that.setData({
? ? ? ? ? ? ? ? codebtn:'發(fā)送驗(yàn)證碼',
? ? ? ? ? ? ? ? disabled:false
? ? ? ? ? ? ? });
? ? ? ? ? ? ? clearInterval(timers)
? ? ? ? ? ? }
? ? ? ? ? },1000)
? ? ? ? }else{
? ? ? ? ? wx.showToast({
? ? ? ? ? ? title: res.data.msg,
? ? ? ? ? ? icon:"none",
? ? ? ? ? ? duration:2000
? ? ? ? ? })
? ? ? ? }
? ? ? ? this.setData({
? ? ? ? ? code:res.data.data,
? ? ? ??
? ? ? ? })
? ? ? }
? ? })?
? ?
? },
? // 登錄處理
? login(e){
? ? var phone=this.data.phone
? ? var code=this.data.code
? ? ?wx.request({
? ? ? ?url: 'http://www.easyadmin.com/api/loginDo',
? ? ? ?method:'POST',
? ? ? ?data:{
? ? ? ? ?phone,
? ? ? ? ?code
? ? ? ?},
? ? ? ?success:res=>{
? ? ? ? ?if(res.data.code==200){
? ? ? ? ? ? wx.redirectTo({
? ? ? ? ? ? ? url: '/pages/my/my',
? ? ? ? ? ? })
? ? ? ? ?}
? ? ? ? ?console.log(res.data)
? ? ? ?}
? ? ?})
? },
?
??
})

wxss頁(yè)面:

/* pages/phone/phone.wxss */
.container {?
? display: flex; ?
? flex-direction: column;?
? padding: 0;?
?}?
?.inputView {?
? line-height: 45px;?
? border-bottom:1px solid #999999;
?}?
.title{
? width: 80%;
? font-weight: bold;
? font-size: 30px;
}
?.inputText {?
? display: inline-block;?
? line-height: 45px;?
? padding-left: 10px;?
? margin-top: 11px;
? color: #cccccc;?
? font-size: 14px;
?}?
?
?.line {
? border: 1px solid #ccc;
? border-radius: 20px;?
? float: right;?
? margin-top: 9px;
? color: #cccccc;
?}?
?.loginBtn {?
? margin-top: 40px;?
? border-radius:10px;
?}

后端php接口:這里我用的是短信寶的平臺(tái)

public function phone(Request ?$request)
? ? {
? ? ? ? $data=$request->get('phone');
? ? ? ? $statusStr = array(
? ? ? ? ? ? "0" => "短信發(fā)送成功",
? ? ? ? ? ? "-1" => "參數(shù)不全",
? ? ? ? ? ? "-2" => "服務(wù)器空間不支持,請(qǐng)確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!",
? ? ? ? ? ? "30" => "密碼錯(cuò)誤",
? ? ? ? ? ? "40" => "賬號(hào)不存在",
? ? ? ? ? ? "41" => "余額不足",
? ? ? ? ? ? "42" => "帳戶已過(guò)期",
? ? ? ? ? ? "43" => "IP地址限制",
? ? ? ? ? ? "50" => "內(nèi)容含有敏感詞"
? ? ? ? );
? ? ? ? $yzm=rand(1111,9999);
? ? ? ? $smsapi = "http://api.smsbao.com/";
? ? ? ? $user = "賬號(hào)"; //短信平臺(tái)帳號(hào)
? ? ? ? $pass = md5("密碼"); //短信平臺(tái)密碼
? ? ? ? $content="您的驗(yàn)證碼是$yzm,請(qǐng)不要告訴任何人";//要發(fā)送的短信內(nèi)容
// ? ? ? ?$phone = $data;//要發(fā)送短信的手機(jī)號(hào)碼
// ? ? ? ?$sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
// ? ? ? ?$result =file_get_contents($sendurl) ;
// ? ? ? ?echo $statusStr[$result];
? ? ? ? $code=Cache::set($data,$yzm);
? ? ? ? return json(['code'=>'200','data'=>$yzm,'msg'=>'短信發(fā)送成功']);
? ? }
public function loginDo()
? ? {
? ? ? ? $data=\request()->post();
? ? ? ? $code=Cache::get($data['phone']);
?
? ? ? ? if($code!==$data['code']){
? ? ? ? ? ? return json(['code'=>'400','data'=>'','msg'=>'短信驗(yàn)證碼錯(cuò)誤']);
? ? ? ? }
? ? ? ? $res=User::where('phone',$data['phone'])->find();
? ? ? ? if (empty($res)){
? ? ? ? ? ? $user = User::create([
? ? ? ? ? ? ? ? 'phone'=>$data['phone']
? ? ? ? ? ? ]);
? ? ? ? ? ? return json(['code'=>'200','注冊(cè)成功','data'=>$user]);
? ? ? ? }else{
? ? ? ? ? ? $user=User::where('phone',$data['phone'])->find();
? ? ? ? ? ? return json(['code'=>'300','登錄成功','data'=>$user]);
? ? ? ? }
?
? ? }

這樣一個(gè)短信驗(yàn)證碼功能就完成啦。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 仿京東快報(bào)向上滾動(dòng)的實(shí)例

    仿京東快報(bào)向上滾動(dòng)的實(shí)例

    下面小編就為大家分享一篇仿京東快報(bào)向上滾動(dòng)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • kindeditor編輯器點(diǎn)中圖片滾動(dòng)條往上頂?shù)腷ug

    kindeditor編輯器點(diǎn)中圖片滾動(dòng)條往上頂?shù)腷ug

    這篇文章主要介紹了kindeditor編輯器點(diǎn)中圖片滾動(dòng)條往上頂?shù)腷ug的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • yolov5項(xiàng)目部署+微信小程序前端展示的全過(guò)程

    yolov5項(xiàng)目部署+微信小程序前端展示的全過(guò)程

    YOLOV5模型從發(fā)布到現(xiàn)在都是炙手可熱的目標(biāo)檢測(cè)模型,被廣泛運(yùn)用于各大場(chǎng)景之中,下面這篇文章主要給大家介紹了關(guān)于yolov5項(xiàng)目部署+微信小程序前端展示的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 分享12個(gè)Webpack中常用的Loader(小結(jié))

    分享12個(gè)Webpack中常用的Loader(小結(jié))

    這篇文章主要介紹了分享12個(gè)Webpack中常用的Loader(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • JavaScript中的FileReader示例詳解

    JavaScript中的FileReader示例詳解

    FileReader主要用于將文件內(nèi)容讀入內(nèi)存,通過(guò)一系列異步接口,可以在主線程中訪問(wèn)本地文件,這篇文章主要給大家介紹了關(guān)于JavaScript中FileReader的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • javascript移動(dòng)設(shè)備Web開(kāi)發(fā)中對(duì)touch事件的封裝實(shí)例

    javascript移動(dòng)設(shè)備Web開(kāi)發(fā)中對(duì)touch事件的封裝實(shí)例

    這篇文章主要介紹了javascript移動(dòng)設(shè)備Web開(kāi)發(fā)中對(duì)touch事件的封裝實(shí)例,分別對(duì)tap事件、doubleTap事件、longTap事件、swipe事件做了封裝,需要的朋友可以參考下
    2014-06-06
  • js 數(shù)值項(xiàng)目的格式化函數(shù)代碼

    js 數(shù)值項(xiàng)目的格式化函數(shù)代碼

    數(shù)值項(xiàng)目的格式化函數(shù)代碼,需要的朋友可以參考下。
    2010-05-05
  • 經(jīng)典面試題之JavaScript?for循環(huán)(var?let)

    經(jīng)典面試題之JavaScript?for循環(huán)(var?let)

    如果你也在面試找工作,那么也一定遇到過(guò)這道for循環(huán)打印結(jié)果的題,下面我們來(lái)探討下,對(duì)經(jīng)典面試題之js?for循環(huán)相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • JavaScript中import用法總結(jié)

    JavaScript中import用法總結(jié)

    在本篇文章里小編給大家分享了關(guān)于JavaScript中import用法知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。
    2019-01-01
  • JS中的const命令你真懂它嗎

    JS中的const命令你真懂它嗎

    這篇文章主要介紹了JS中的const命令你真懂它嗎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論

太湖县| 上虞市| 虞城县| 宿迁市| 古田县| 浙江省| 德庆县| 宜昌市| 恭城| 壤塘县| 巢湖市| 三台县| 鞍山市| 渝北区| 敦化市| 革吉县| 庆云县| 南漳县| 清水河县| 同仁县| 银川市| 大同县| 重庆市| 武义县| 兴宁市| 汉源县| 昂仁县| 进贤县| 吉林省| 桐庐县| 巴林右旗| 谷城县| 那曲县| 陆丰市| 韶关市| 全南县| 呼和浩特市| 海淀区| 高邑县| 海口市| 乌拉特中旗|