Forum und email

處理表單

PHP 最強大的功能之一是它對 HTML 表單的處理能力。HTML 表單所傳回的所有項目將自動的提供給您的程式使用。更多使用表單的範例可參考來自 PHP 以外的變數一章。下面是 HTML 表單的範例:

Example#1 一個簡單的 HTML 表單

<form action="action.php" method="post">
 <p>Your name: <input type="text" name="name" /></p>
 <p>Your age: <input type="text" name="age" /></p>
 <p><input type="submit" /></p>
</form>

這只是一個普通的 HTML 表單。它並不包含任何特別的標籤。當使用者填好表格,按下提交鍵後,表單中的所有資料將傳給 action.php,而此檔案則有下列的內容:

Example#2 輸出表單的內容

Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.

此腳本的輸出樣本為:

Hi Joe. You are 22 years old.

除了 htmlspecialchars()(int)的部分之外,應該很明白這個程式做了什麼。htmlspecialchars()確定 html 中特殊字元被編碼,所以其他人無法在您的網頁放入 HTML 標籤或是 Javascript。關於 age 那一欄,我們知道它是一個數值,所以可以用convert來去除任何不正確的字元。也可以使用filter擴充功能讓 PHP 自動做這些事。PHP 自動的為您設定了 $_POST["name"]$_POST["age"] 兩個變數。之前,我們使用過 $_SERVER 這個 superglobal,而上述例子則為您介紹了含有所有 POST 資料的 $_POST autoglobal。請留意我們表單所使用的方法(method)是 POST。如果我們剛才使用的是 GET,那所有的表單資料將存在 $_GET 這個 superglobal 裡了。若您不想理會表單使用了哪一種方法,那您可以改為使用 $_REQUEST 這個 autoglobal。它包含了所有 GET、POST、COOKIE 和 FILE 的資料。請參考 import_request_variables() 函式。

也可以在 PHP 中處理 XForms 的輸入,儘管可能更喜歡使用長久以來支援良好的 HTML 表單。XForms 目前還不適合初學者使用,但是您可能對它感興趣。手冊中在「特點」有章節對如何處理從 XForum 接收到的資料進行了簡短的介紹。