$_POST 變量
$_POST 變量是一個數組,內容是由 HTTP POST 方法發送的變量名稱和值。
$_POST 變量用于收集來自 method="post" 的表單中的值。從帶有 POST 方法的表單發送的信息,對任何人都是不可見的(會顯示在瀏覽器的地址欄),并且對發送信息的量也沒有限制。
例子
<form action="welcome.php" method="post"
> Enter your name: <input type="text" name="name" /> Enter your age: <input type="text" name="age" /> <input type="submit" /> </form>
當用戶點擊提交按鈕,URL 不會含有任何表單數據,看上去類似這樣:
http://www.w3school.com.cn/welcome.php
"welcome.php" 文件現在可以通過 $_POST 變量來獲取表單數據了(請注意,表單域的名稱會自動成為 $_POST 數組中的 ID 鍵):
Welcome <?php echo $_POST["name"]
; ?>.<br /> You are <?php echo $_POST["age"]
; ?> years old!
$_REQUEST 變量
PHP 的 $_REQUEST 變量包含了 $_GET, $_POST 以及 $_COOKIE 的內容。
PHP 的 $_REQUEST 變量可用來取得通過 GET 和 POST 方法發送的表單數據的結果。
例子
Welcome <?php echo $_REQUEST["name"]; ?>.<br /> You are <?php echo $_REQUEST["age"]; ?> years old!
ATTENTION:慎用$_REQUEST
如果get的一個變令名稱和post的一個變量名稱相同,則POST的值會覆蓋GET的變量值
以為REQYEST先獲取了get的值,然后獲取了post的值,post的值會覆蓋get值
我們可以來看php.ini中的配置
; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.
variables_order = "EGPCS"
這個EGPCS就是說明用$_REQUEST數組獲取內容的優先級,其字母的含義分別代表為:E代表$_ENV,G代表$_GET,P代表$_POST,C代表$_COOKIE,S代表$_SESSION。后面出現的數據會覆蓋前面寫入的數據,其默認的數據寫入方式就是EGPCS,所以POST包含的數據將覆蓋GET中使用相同關鍵字的數據。
通過這個我們也可以看出PHP獲取參數的步驟
環境變量=》GET=》POST=》COOKIE=>SESSION