PHP 表單處理
在本教程中,你將學習如何使用 PHP 超全域性變數收集通過表單提交的使用者輸入 $_GET
, $_POST
以及 $_REQUEST
。
建立簡單的聯絡表單
在本教程中,我們將建立一個簡單的 HMTL 聯絡表單,允許使用者輸入他們的評論和反饋,然後使用 PHP 將其顯示到瀏覽器。
開啟你喜歡的程式碼編輯器並建立一個新的 PHP 檔案。現在鍵入以下程式碼並將此檔案 contact-form.php
儲存到專案根目錄中。
例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact Form</title>
</head>
<body>
<h2>Contact Us</h2>
<p>Please fill in this form and send us.</p>
<form action="process-form.php" method="post">
<p>
<label for="inputName">Name:<sup>*</sup></label>
<input type="text" name="name" id="inputName">
</p>
<p>
<label for="inputEmail">Email:<sup>*</sup></label>
<input type="text" name="email" id="inputEmail">
</p>
<p>
<label for="inputSubject">Subject:</label>
<input type="text" name="subject" id="inputSubject">
</p>
<p>
<label for="inputComment">Message:<sup>*</sup></label>
<textarea name="message" id="inputComment" rows="5" cols="30"></textarea>
</p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
程式碼說明
請注意,開始 <form>
標記中有兩個屬性 :
- 該
action
屬性引用一個 PHP 檔案process-form.php
,當使用者通過按下提交按鈕提交資料時,該檔案接收輸入到表單中的資料。 - 該
method
屬性告訴瀏覽器通過 POST 方法 傳送表單資料。
表單中的其餘元素是用於接收使用者輸入的基本表單控制元件。要了解有關 HTML 表單元素的更多資訊,請檢視 HTML 表單 教程。
使用 PHP 捕獲表單資料
要訪問特定表單欄位的值,可以使用以下超全域性變數。這些變數在整個指令碼的所有範圍內都可用。
超全域性 | 描述 |
---|---|
$_GET |
包含使用 get 方法(即通過 URL 引數)由表單傳送的所有欄位名稱和值的列表。 |
$_POST |
包含使用 post 方法由表單傳送的所有欄位名稱和值的列表(資料在 URL 中不可見)。 |
$_REQUEST |
包含 $_GET 和 $_POST 變數的值以及 $_COOKIE 超全域性變數的值。 |
當使用者通過單擊提交按鈕提交上述聯絡表單時,表單資料將被髮送到伺服器上的 process-form.php
檔案進行處理。它只是捕獲使用者提交的資訊並將其顯示給瀏覽器。
process-form.php
檔案的 PHP 程式碼如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact Form</title>
</head>
<body>
<h1>Thank You</h1>
<p>Here is the information you have submitted:</p>
<ol>
<li><em>Name:</em> <?php echo $_POST["name"]?></li>
<li><em>Email:</em> <?php echo $_POST["email"]?></li>
<li><em>Subject:</em> <?php echo $_POST["subject"]?></li>
<li><em>Message:</em> <?php echo $_POST["message"]?></li>
</ol>
</body>
</html>
上面的 PHP 程式碼非常簡單。由於表單資料是通過 post 方法傳送的,因此你可以通過將其名稱傳遞給 $_POST
超全域性陣列來檢索特定表單欄位的值,並使用 echo()
statement 顯示每個欄位值。
在現實世界中,你無法信任使用者輸入; 你必須實現某種驗證以在使用之前過濾使用者輸入。在下一章中,你將學習如何清理和驗證此聯絡表單資料並使用 PHP 通過電子郵件傳送。