# 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 John
Your email address is john.doe@example.com
```
使用 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 表單!
- PHP 基礎
- PHP 簡介
- PHP 安裝
- PHP 語法
- PHP 變量
- PHP 5 echo 和 print 語句
- PHP 數據類型
- PHP 字符串函數
- PHP 常量
- PHP 運算符
- PHP if...else...elseif 語句
- PHP Switch 語句
- PHP while 循環
- PHP for 循環
- PHP 函數
- PHP 數組
- PHP 數組排序
- PHP 全局變量 - 超全局變量
- PHP 魔術變量
- PHP 命名空間(namespace)
- PHP 表單
- PHP 表單處理
- PHP 表單驗證
- PHP 表單驗證 - 必填字段
- PHP 表單驗證 - 驗證 E-mail 和 URL
- PHP 表單驗證 - 完成表單實例
- PHP $_GET 變量
- PHP $_POST 變量
- PHP 高級
- PHP 多維數組
- PHP 日期和時間
- PHP Include 文件
- PHP 文件處理
- PHP 文件打開/讀取/讀取
- PHP 文件創建/寫入
- PHP 文件上傳
- PHP Cookies
- PHP Sessions
- PHP 發送電子郵件
- PHP 安全的電子郵件
- PHP 錯誤處理
- PHP 異常處理
- PHP 過濾器(Filter)
- PHP JSON
- PHP 數據庫
- PHP MySQL 簡介
- PHP 連接 MySQL
- PHP MySQL 創建數據庫
- PHP 創建 MySQL 表
- PHP MySQL 插入數據
- PHP MySQL 插入多條數據
- PHP MySQL 預處理語句
- PHP MySQL 讀取數據
- PHP MySQL Where 子句
- PHP MySQL Order By 關鍵詞
- PHP MySQL Update
- PHP MySQL Delete
- PHP 數據庫 ODBC
- PHP XML
- PHP XML Expat 解析器
- PHP XML DOM
- PHP SimpleXML
- PHP AJAX
- AJAX 簡介
- AJAX XMLHttpRequest
- PHP 和 AJAX 請求
- PHP 和 AJAX XML 實例
- PHP 和 AJAX MySQL 數據庫實例
- PHP 和 AJAX responseXML 實例
- PHP 和 AJAX Live Search
- PHP 和 AJAX RSS 閱讀器
- PHP 和 AJAX 投票
- 免責聲明