4-1
接收表單的值
一、接收從表單來的變數
- 表單若是用
POST方法,送出後,action 指定的檔案會接收到 $_POST['xxx'] 的超級全域變數(是一個Array陣列,若是 get 方法,則為 $_GET['xxx']),同時,也會產生 $_SERVER['REQUEST_METHOD'] 超級全域變數,值為 POST。
<form action="admin.php" method="post">
至於 xxx 指的是什麼?就是表單元件中的 name 屬性,例如:
-
<input type="text" name="title">
送出後,admin.php 這個檔就會收到 $_POST['title'] 的超級全域變數
-
用 $_REQUEST['xxx'] 則同時可接收來自 post、get 和 cookie 的變數 。
-
此外,$_SERVER['REQUEST_METHOD'] 的值則會等於「POST」,所以,我們可以利用此點,判斷是否是有表單用POST方式傳值進來:
// 處理表單提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
...若有傳值進來就處理之...
}
=== 是左右比對,除了變數值,連變數類型都需要一致才行
-
接著我們可以擷取到以下的值:
// 取得表單值
$title = $_POST['title'];
$content = $_POST['content'];
$author = $_POST['author'];
$date = $_POST['date'];
$category = $_POST['category'];
二、超級全域變數(superglobals)
- PHP提供了一系列的預設變數,這些預設變數都以陣列(Array)的型態存在。
- 不同來源的超級全域變數為
$_POST、$_GET、 $_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_FILES 等,後面會陸續提到。
- 前面一定有底線,一定是大寫。
- 這些變數是可以在任何地方被拿來使用,例如函數中也可以直接用,不需要用global關鍵字宣告。
- 它們也被稱為「自動全域變數」(autoglobals)或 「超級全域變數」(superglobals)。