1. 程式人生 > 實用技巧 >PHP 表單處理

PHP 表單處理

PHP 超全域性變數 $_GET 和 $_POST 用於收集表單資料(form-data)。

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>

執行例項

當用戶填寫此表單並點選提交按鈕後,表單資料會發送到名為 "welcome.php" 的 PHP 檔案供處理。表單資料是通過 HTTP POST 方法傳送的。

如需顯示出被提交的資料,您可以簡單地輸出(echo)所有變數。"welcome.php" 檔案是這樣的:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

輸出:

Welcome Bill
Your email address is [email protected]

使用 HTTP GET 方法也能得到相同的結果:

例項

<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 vs. POST

GET 和 POST 都建立陣列(例如,array( key => value, 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 支援高階功能,比如在向伺服器上傳檔案時進行 multi-part 二進位制輸入。

不過,由於變數未顯示在 URL 中,也就無法將頁面新增到書籤。

提示:開發者偏愛 POST 來發送表單資料。

接下來讓我們看看如何安全地處理 PHP 表單!