首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 表單提交給自身的實作技巧

     編輯:PHP 綜合知識

核心概念

將表單的 action 指向目前執行的腳本,可在同一檔案內同時處理「顯示表單」與「處理送出資料」兩個階段。關鍵在於判斷請求方法(GET/POST)或檢查隱藏欄位。

完整範例

<?php
// 處理 POST 請求
if (isset($_POST['action']) && $_POST['action'] === 'submitted') {
    echo '<pre>';
    print_r($_POST);
    echo '<a href="' . $_SERVER['PHP_SELF'] . '">Please try again</a>';
    echo '</pre>';
} else {
?>
<form action="" method="POST">
    Name: <input type="text" name="personal[name]"><br>
    Email: <input type="text" name="personal[email]"><br>
    Beer:<br>
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
    </select><br>
    <input type="hidden" name="action" value="submitted">
    <input type="submit" name="submit" value="submit me!">
</form>
<?php } ?>

關鍵點解析

  • $_SERVER['PHP_SELF'] 取得目前腳本路徑,作為表單提交目標。
  • 隱藏欄位 action=submitted 作為旗標,區分「首次載入(GET)」與「表單送出(POST)」。
  • 陣列式命名 personal[name]、beer[] 可直接在 $_POST 中形成多維陣列,方便處理。
  • PHP 4.1.0 以前版本請使用 $HTTP_POST_VARS 代替 $_POST。

進階應用

  • 搭配 filter_input() 或 filter_var() 進行輸入驗證與過濾。
  • 加入 CSRF Token 驗證,防止跨站請求偽造。
  • 採用 PRG (Post-Redirect-Get) 模式:處理完 POST 後 header("Location: " . $_SERVER['PHP_SELF']) 導向自身,避免重新整理重複送出。

結語

表單自提交是 PHP 開發常見模式,善用 $_SERVER['PHP_SELF'] 與隱藏旗標即可輕鬆實現,配合現代安全措施可構建健壯的表單處理流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved