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 通過電子郵件傳送。