<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                數據驗證是根據具有確定結果的預定義模式(或模式)分析數據的過程:有效或無效。 通常這適用于來自外部來源的數據,例如用戶輸入和通過API調用Web服務。 數據驗證的簡單示例: - 檢查所需字段未留空 - 檢查輸入的電話號碼只包含數字和標點符號 - 檢查輸入的郵政編碼是否是有效的郵政編碼 - 檢查數量字段是否大于0 - 數據驗證應盡早進行。 這意味著在執行任何操作之前驗證數據。 >[warning] 注意:驗證可以通過使用前端的JavaScript和后端使用PHP來執行。 ## 驗證數據 至少有三種方式:內置PHP函數,核心WordPress函數和您編寫的自定義函數。 ## 內置PHP功能 使用許多內置的PHP函數進行基本驗證,包括: - isset()和empty()用于檢查變量是否存在且不為空 - mb_strlen()或strlen()用于檢查字符串是否具有預期的字符數 - preg_match(),strpos()用于檢查其他字符串中某些字符串的出現情況 - count()用于檢查數組中有多少項 - in_array()用于檢查數組中是否存在某些內容 ## 核心WordPress功能 WordPress提供了許多有用的功能,有助于驗證不同類型的數據。 以下是幾個例子: - is_email()將驗證電子郵件地址是否有效。 - term_exists()檢查是否存在標簽,類別或其他分類術語。 - username_exists()檢查用戶名是否存在。 - validate_file()將驗證輸入的文件路徑是否為真實路徑(但不是文件是否存在)。 檢查條件標簽的列表以獲得更多類似的功能。 搜索具有以下名稱的函數:`*_exists()`,`*_validate()`,并且是`_*()`。 并非所有這些都是驗證功能,但許多都是有幫助的。 ## 自定義PHP和JavaScript函數 您可以編寫自己的PHP和JavaScript函數,并將它們包含在您的插件中。 編寫驗證函數時,您需要將其命名為一個問題(例如:is_phone,is_available,is_us_zipcode)。 該函數應該返回一個布爾值(true或false),具體取決于數據是否有效。 這將允許使用該功能作為條件。 ## 示例1 假設您有一個用戶提交的美國郵政編碼輸入字段。 ``` <input id="wporg_zip_code" type="text" maxlength="10" name="wporg_zip_code"> ``` 文本字段允許最多10個字符的輸入,對可以使用的字符類型沒有限制。 用戶可以輸入一些有效的東西,如1234567890,或者像eval()一樣無效(和邪惡)。 我們輸入域中的maxlength屬性僅由瀏覽器強制執行,因此您仍然需要驗證服務器上輸入的長度。 如果不這樣做,攻擊者可以改變maxlength值。 通過使用驗證,我們可以確保我們只接受有效的郵政編碼。 首先,您需要編寫一個功能來驗證美國郵政編碼: ``` <?php function is_us_zip_code($zip_code) { // scenario 1: empty if (empty($zip_code)) { return false; } // scenario 2: more than 10 characters if (strlen(trim($zip_code)) > 10) { return false; } // scenario 3: incorrect format if (!preg_match('/^\d{5}(\-?\d{4})?$/', $zip_code)) { return false; } // passed successfully return true; } ``` 處理表單時,您的代碼應檢查wporg_zip_code字段,并根據結果執行操作: ``` if ( isset( $_POST['wporg_zip_code'] ) && is_us_zip_code( $_POST['wporg_zip_code'] ) ) { // your action } ``` ## 例2 假設您要查詢數據庫中的某些帖子,并希望讓用戶對查詢結果進行排序。 該示例代碼通過使用內置的PHP函數in_array將允許的排序鍵的數組進行比較來檢查輸入的排序鍵(存儲在“orderby”輸入參數中)的有效性。 這樣可以防止用戶傳遞惡意數據并潛在地損害網站。 在對數組檢查傳入排序鍵之前,將密鑰傳遞到內置的WordPress功能sanitize_key。 此功能確保了鍵是小寫(in_array執行區分大小寫的搜索)。 將“true”傳遞給in_array的第三個參數可以進行嚴格的類型檢查,這樣就可以使功能不僅可以比較值和值類型。 這允許代碼確定輸入的排序鍵是字符串,而不是其他數據類型。 ``` <?php $allowed_keys = ['author', 'post_author', 'date', 'post_date']; $orderby = sanitize_key( $_POST['orderby'] ); if ( in_array( $orderby, $allowed_keys, true ) ) { // modify the query to sort by the orderby key } ```
                  <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>

                              哎呀哎呀视频在线观看