PHP的post數據與request數據
PHP的post數據與request數據
$_POST變量(數組)
類似$_GET變量(數組),$_POST代表頁面通過post方式提交過來的數據所形成的數組。
post提交數據,通常只有一種形式:
<form action="abc.php" method="post">
Project 1:<input type="text" name="uName" />
Project 2:<input type="password" name="uPswd" />
<input type="submit" value="Submit" />
</form>
其作用是:用戶填寫表單數據,並提交後,會將數據發送(提交)給頁面abc.php,其實也可以理解為“打開”該網頁(abc.php),還可以理解為“請求”該網頁(abc.php)
<?php
$v1 = $_POST['uName']; //單引號也可以用雙引號,本質是一個字符串,其實是數組的鍵名(下標)
$v2 = $_POST['uPswd']; //該鍵名必須跟提交的時候的名字完全一致(區分大小寫)
//也可以顯示所有post數據:
var_dum($_POST)
?>
接收post數據的形式為:(在abc.php網頁中)
通常,網頁中的form表單,一般都用post方式,get方式一般都體現在其它3種形式
$_REQUEST變量(數組)
$_REQUEST數組,其實並不是一個獨立的數據來源,而是$POST數據和$_GET數據的“總和”
即$_REQUEST數組中包括了所有$_POST數據和$_GET數據--其實是由系統內部自動存儲的。
通常,$_POST數據和$_GET數據不會“同時出現”,$_REQUEST數組就代表了其中之一。
get與post數據同時提交的情形:
此時,一般只有一種html語法形式會出現該情形,如下:
<form action="abc.php?a=5&b=10" method="post">
Project 1:<input type="text" name="uName" />
Project 2:<input type="password" name="uPswd" />
<input type="submit" value="Submit" />
</form>
則此時,uName和uPswd兩個數據以post方式提交給abc.php
並同時:a=5 和 b=10兩個數據,以get方式提交給abc.php
則在頁面中這樣取得get數據:
$v1 = $_GET['a'];
$v2 = $_GET['b];
這樣取得 post數據:
$v3 = $_POST['uName'];
$v4 = $_POST['uPswd'];
但,也可以這樣取得全部數據:
$v1 = $_REQUEST['a'];
$v2 = $_REQUEST['b];
$v3 = $_REQUEST['uName'];
$v4 = $_REQUEST['uPswd']
當get數據和post數據同時提交並其中有重名時說明:
wKioL1ZB0guxMIlkAABmi-th574335.jpg
1:盡量避免重名
2:如果重名了,此時$_REQUEST只會記錄(存儲)其中一個數據(要麼get數據,要麼post數據)
3:至於記錄的是哪個,是由php.ini中的一個設置來決定的
request_order = "GP"; //這是默認值,G代表GET,P代表POST
其含義是:先存儲GET數據,再存儲POST數據
由此可見,如果重名,此時POST數據會覆蓋GET數據
改為:request_order = "PG",順序反過來。。。。。
注:$_REQUEST、$_GET、$_POST三種數據相互獨立!
$_SERVER變量(數組)
該變量存儲了服務器端或客戶端的一些請求信息或設置信息,比較多,而且不同的服務器和不同的請求頁面,其數據項都可能不同。
常用的有:
REMOTE_ADDR 用戶的IP地址
SERVER_ADDR 服務器端的IP地址
SERVER_NAME 服務器名(主機名)
DOCUMENT_ROOT 站點絕對路徑(其實就是主機設置中的DocumentRoot
PHP_SELF 當前網頁的文件路徑
QUEER_STRING 表示一個get請求的整體字體串,類似這樣:
http://www.abc.com/abc.php?a=5&b=10 鏈接地址中的 “a=5&b=10”
輸出所有項(可能每台服務器有所差異): 9000000000000000