要確定表單是否已提交並因此應該進行驗證,可以採用不同的方法。
最初考慮的是檢查 $_POST 超全域變數是否存在:
isset($_POST)
但是,這種方法總是回傳正確,因為超全域變數是全域定義的。迭代每個表單元素也不理想:
if(isset($_POST['element1']) || isset($_POST['element2']) || isset(...etc)
更簡單的解決方案包括添加一個隱藏的標誌字段來檢查:
<!-- Form code here --> <input type="hidden" name="submitted" value="1">
// Check if the "submitted" field is set if (isset($_POST['submitted'])) { // Form has been submitted, validate input }
更全面的方法涉及檢查請求方法:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
此方法更可取,因為它還適用於 $_POST 超全局中可能不存在沒有名稱的複選框或按鈕的情況。
注意: 重要的是要考慮請求方法可能未設定為 ' 的潛在邊緣情況POST,例如在沒有 JavaScript 的情況下提交表單時。
以上是如何可靠地檢查 PHP 中的表單提交?的詳細內容。更多資訊請關注PHP中文網其他相關文章!