亚洲青青视频一区|8MAV在线观看|天天看AV天天看|中日成人手机在线|欧美激情五区六区|亚洲婷婷天堂级片|亚洲天堂网7777|欧美日韩其他另类|手机在线成人AV|成人性大片一区二区三区四区五区

284292114@qq.com 中國(guó)站
新聞中心 網(wǎng)絡(luò)推廣 網(wǎng)站建設(shè) 優(yōu)化推廣 首頁>新聞中心>網(wǎng)站建設(shè)

pbootcms留言時(shí)先發(fā)送手機(jī)驗(yàn)證碼驗(yàn)證后再留言

時(shí)間:2020-11-29   訪問量:0

之前開發(fā)一個(gè)小功能就是留言后發(fā)送短信到手機(jī)上。給朋友說了一下,然后他說他有一個(gè)客戶需求是留言的時(shí)候先手機(jī)驗(yàn)證一下,避免有人亂留言。這其實(shí)是一個(gè)好主意,可以過濾掉很多垃圾留言信息。

于是趁熱打鐵,前兩天剛開發(fā)了留言發(fā)送到手機(jī)上以及注冊(cè)會(huì)員時(shí)手機(jī)驗(yàn)證,正好可以使用到之前用過的方法來實(shí)現(xiàn)這一功能。

下面開始講如何實(shí)現(xiàn)。

歡迎隨便轉(zhuǎn)載,需要注明來源和出處,我們的目的是讓知識(shí)和內(nèi)容得到分享和傳播。


這個(gè)小功能呢,我看了一下代碼,和上一次說的會(huì)員注冊(cè)時(shí)需要一個(gè)短信驗(yàn)證差不多。代碼也極為相似。

安排:

此次需要修改的文件一共有三個(gè):

1:前端文件:templatedefaulthtmlmessage.html

2:  標(biāo)簽解析文件: appshomecontrollerParserController.php

 3:  控制器文件: appshomecontrollerMessageController.php




弟一:修改前端文件

這個(gè)比較簡(jiǎn)單,就是驗(yàn)證碼的位置和上一篇文章提到的會(huì)員注冊(cè)是一樣的,添加一個(gè)發(fā)送短信的按鈕。我們用:sendBook,之前注冊(cè)會(huì)員短信驗(yàn)證我們用的是sendPhone,參考一下,其實(shí)都是一樣的方法。


 <div class="form-group">
                    <label for="checkcode">手機(jī)驗(yàn)證碼</label>
                    <div class="row">
                        <div class="col-6">
                            <input type="text" name="checkcode" required id="checkcode" class="form-control" placeholder="請(qǐng)輸入驗(yàn)證碼">
                        </div>
                        <div class="col-6">
                            <span  class="btn btn-info mb-2" onclick="sendBook();">發(fā)送短信</span>
                        </div>
                    </div>
                </div>


image.png

然后在下面的JS中添加

//發(fā)送短信驗(yàn)證碼
function sendBook(){
  var url='{pboot:sendBook}';
  var username=$("#username").val();
  if(!username){
    alert("請(qǐng)先輸入需要注冊(cè)的手機(jī)號(hào)!");
    return false;
  }
  $.ajax({
    type: 'POST',
    url: url,
    dataType: 'json',
    data: {
      to: username
    },
    success: function (response, status) {
      if(response.code){
       alert(response.data);
      }else{
       alert(response.data);
      }
    },
     
  });
  return false;
}



第二:解析標(biāo)簽增加一個(gè):sendBook,這個(gè)簡(jiǎn)單,復(fù)制上面的改名即可。

image.png


第三:重點(diǎn)來了。控制器文件MessageController.php中我們添加一個(gè)發(fā)送短信的函數(shù)。代碼太多,我直接復(fù)制下來。



     // 發(fā)送短信
    public function sendBook()
    {
      
        
        if (time() - session('lastsend') < 10) {
            json(0, '您提交太頻繁了,請(qǐng)稍后再試!');//間隔100秒才能再次提交。
        }        
           // 發(fā)送手機(jī)驗(yàn)證      
     

        if (! ! $to = post('to')) {           
            if (! preg_match('/^1[0-9]{10}$/', $to)) {
                json(0, '手機(jī)格式不正確,請(qǐng)輸入正確的手機(jī)號(hào)!');
            }
        }      
      
        
        $rs = false;
        if ($to) {
            session('lastsend', time()); // 記錄醉后提交時(shí)間      
            $code = create_code(4);// 驗(yàn)證碼長(zhǎng)度    
            session('checkcode', strtolower($code)); 
            $phone_body = "你的注冊(cè)驗(yàn)證碼是{" . $code."}";   
          
            $statusStr = array(
            "0" => "短信發(fā)送成功",
            "-1" => "參數(shù)不全",
            "-2" => "服務(wù)器空間不支持,請(qǐng)確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!",
            "30" => "密碼錯(cuò)誤",
            "40" => "賬號(hào)不存在",
            "41" => "余額不足",
            "42" => "帳戶已過期",
            "43" => "IP地址限制",
            "50" => "內(nèi)容含有敏感詞"
            );             
            $smsapi = "http://api.smsbao.com/";
            $user = "15800110475"; //短信平臺(tái)帳號(hào)
            $pass = md5("ySShb2FD842DF"); //短信平臺(tái)密碼         
            $phone = post('to'); //接收短信的手機(jī)號(hào)碼         
            $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($phone_body);
            $result =file_get_contents($sendurl) ;
            echo $statusStr[$result];          
    
        }
       if ($result  === true) {
             
        } else {
            
        }

        return $sendBook;
    
    }


然后在下面的留言新增的函數(shù)中修改如下驗(yàn)證碼處的位置

  // 驗(yàn)證碼驗(yàn)證
            
            $checkcode = strtolower(post('checkcode', 'var'));
            
            if ($this->config('message_check_code') !== '0') {
                               
                if (! $checkcode) {
                    alert_back('驗(yàn)證碼不能為空!');
                }else{
                    $sendBook = $this->sendBook();//發(fā)送驗(yàn)證碼 
                }
                
                if ($checkcode != session('checkcode')) {
                    alert_back('驗(yàn)證碼錯(cuò)誤!');
                } 

            }


image.png




服務(wù)咨詢
1對(duì)1咨詢,專業(yè)客服為您解疑答惑
聯(lián)系銷售
15899750475
在線咨詢
聯(lián)系在線客服,為您解答所有的疑問
ARE YOU INTERESTED IN ?
感興趣嗎?

有關(guān)我們服務(wù)的更多信息,請(qǐng)聯(lián)系項(xiàng)目經(jīng)理

15899750475 楊先生