PHP 表單處理
PHP 超全域性變數 $_GET
和 $_POST
用於收集表單資料。
PHP - 一個簡單的 HTML 表單
下面的例子展示了一個簡單的 HTML 表單,包含兩個輸入欄位和一個提交按鈕
示例
<html>
<body>
<form action="welcome.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
執行示例 »
當用戶填寫完上面的表單並點選提交按鈕時,表單資料將透過 HTTP POST 方法傳送到名為 "welcome.php" 的 PHP 檔案進行處理。
要顯示提交的資料,您可以簡單地 echo 所有變數。
"welcome.php" 檔案內容如下
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
輸出可能如下
Welcome John
Your email address is john.doe@example.com
使用 HTTP GET 方法也可以達到相同的結果
示例
相同的例子,但 method 設定為 GET 而不是 POST
<html>
<body>
<form action="welcome_get.php" method="GET">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
執行示例 »
"welcome_get.php" 檔案內容如下
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
上面的程式碼非常簡單,不包含任何驗證。
您需要驗證表單資料以保護您的指令碼免受惡意程式碼的侵害。
處理 PHP 表單時請考慮安全性!
此頁面不包含任何表單驗證,僅展示如何傳送和檢索表單資料。
但是,接下來的頁面將展示如何以安全的方式處理 PHP 表單!正確驗證表單資料對於保護您的表單免受駭客和垃圾郵件傳送者的侵害非常重要!
GET 與 POST
GET 和 POST 都會建立一個數組(例如:array( key1 => value1, key2 => value2, key3 => value3, ...))。該陣列包含鍵值對,其中鍵是表單控制元件的名稱,值是使用者輸入的資料。
GET 和 POST 都被處理為 $_GET 和 $_POST。它們是超全域性變數,這意味著它們始終可訪問,無論作用域如何——您可以從任何函式、類或檔案中訪問它們,而無需進行任何特殊操作。
$_GET 是一個變數陣列,透過 URL 引數傳遞給當前指令碼。
$_POST 是一個變數陣列,透過 HTTP POST 方法傳遞給當前指令碼。
何時使用 GET?
使用 GET 方法從表單傳送的資訊**對所有人可見**(所有變數名和值都會顯示在 URL 中)。GET 對傳送資訊量也有限制。限制約為 2000 個字元。然而,由於變數顯示在 URL 中,因此可以收藏該頁面。這在某些情況下可能很有用。
GET 可用於傳送非敏感資料。
注意: GET 絕不應用於傳送密碼或其他敏感資訊!
何時使用 POST?
使用 POST 方法從表單傳送的資訊**對他人不可見**(所有名稱/值都嵌入在 HTTP 請求的正文中),並且對傳送資訊量**沒有限制**。
此外,POST 支援高階功能,例如支援在將檔案上傳到伺服器時進行多部分二進位制輸入。
然而,由於變數不顯示在 URL 中,因此無法收藏該頁面。
開發人員更傾向於使用 POST 來發送表單資料。
接下來,讓我們看看如何安全地處理 PHP 表單!