<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >common.php基礎 Common.php基礎源碼如下,根據自己的業務邏輯更改,后期還有更多修改的地方,比如return_msg() 方法可以封裝到TP5自帶的common.php應用文件里。還有如果遇到自身的異常該怎么辦?異常他會以tpl形式返回,無json數據。這也是后面需要考慮的問題,在這里我們可以簡單的說明一下做簡單嘗試,如果在使用數據庫的時候可以使用try..catch...捕獲異常,如果不是數據庫異常呢?這時候就要使用Handle類,具體的后面詳細介紹 ```php <?php namespace app\api\controller; use think\Request; use think\Controller; class Common extends Controller{ protected $request; //用來處理請求參數 protected $params; //過濾后符合要求的所有參數(過濾time、token等數據) /** * 通過構造函數獲取信息 * check_time() 并不是系統自帶的,而是我們自己編寫的函數 * echeck_time() 用于對應時間戳,避免接口惡意大規模調用 */ protected function _initialize(){ parent::_initialize(); $this->request=Request::instance(); /** * check_time() 檢測時間戳過濾數據 * only(['time']) 只要time字段過濾數據 */ $this->check_time($this->request->only(['time'])); /** * check_token() 驗證加密token值 * 將除token以外的數據值進行加密再生成新token,與api傳來toekn進行對比 * 此處先按照接收所有參數數據處理,因為還要和api傳來token對比 */ $this->check_token($this->request->param()); /** * 驗證請求是否超時 * @param array $arr 包括時間戳的所有參數數組 * return json 所有數據以json數據格式傳輸 */ public function check_time($arr){ /** * intval() 強制轉換使用規則 * intval('hello') => 0 純字符串 轉換 成0 * intval('123hello') => 123 數字+字符串 轉換 成數字部分 * intval($arr[]) => 0 空數組 轉換 成0 * intval($arr['hello']) => 1非空數組 轉換 成1 */ if(!isset($arr['time'])||intval($arr['time'])<=1){ /*我們只想要一串數字,而非數組*/ $this->return_msg(400,'時間戳不存在'); } /** * 當前時間戳time() 與 api獲取時間戳$arr['time'] * 差值不能大于60,否則按超時處理 */ if(time()-intval($arr['time'])>60){ $this->return_msg(400,'請求超時'); } } /** * @param $code 錯誤狀態碼 * @param string $msg 錯誤信息 默認為空 * @param array $data 錯誤數據 默認為空數組 */ public function return_msg($code,$msg='',$data=[]){ /*開始執行腳本文件*/ $return_data['code']=$code; $return_data['msg']=$msg; $return_data['data']=$data; /*此處不能用return,否則會繼續調用,程序繼續執行,所以此處是輸出數據并終止腳本*/ echo json_encode($return_data); die; } /** * 驗證token 防止篡改數據 * @param array $srr 全部請求參數 * @return json token返回驗證結果 */ public function check_token($arr){ /*開始接收客戶端api傳過來的token*/ if(!isset($arr['token']) || empty($arr['token'])){ $this->return_msg(400,'token數據不能為空'); } $api_token = $arr['token']; /** * 開始執行加密形成token * 第一步 將所有接收數據md5加密 * 第二步 將之前的md5加密后數據組合在一起再進行md5加密 * 第二步 為數據加前綴和后綴后在進行md5加密獲得最終token * 開始處理服務器端生成token * 第一步 從接收參數$arr除去自帶token數據 * 第二步 初始化服務端token數據 */ unset($arr['token']); //unset() 銷毀變量,而非去除數組數據 $service_token = ""; foreach ($arr as $key => $value){ $service_token .= md5($value); } $service_token = md5('api_'.$service_token.'_api'); //halt($service_token); /*將客戶端api與服務端api進行驗證對比*/ if($api_token !== $service_token){ $this->return_msg(400,'token數據不正確'); } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看