在web開發(fā)中,如果想要獲取用戶提交的信息,往往需要使用到表單。利用一個(gè)form表單給用戶展示需要填寫的信息,然后用戶輸入信息后提交表單;表單提交數(shù)據(jù)后就需要獲取到數(shù)據(jù)進(jìn)行處理。那么怎么才能快速獲取表單數(shù)據(jù)呢?其實(shí)PHP中內(nèi)置了3個(gè)預(yù)定義變量(又叫超全局變量)來獲取,本篇文件就來給大家具體介紹一下。
首先我們來了解一下表單的工作過程:
-
首先表單必須展示給用戶,用戶輸入信息后提交表單。
-
每個(gè)表單都會(huì)指定一個(gè)網(wǎng)頁,用戶提交表單后,這個(gè)網(wǎng)頁會(huì)被加載并負(fù)責(zé)處理表單信息。
例如下面user.html文件中的form標(biāo)簽內(nèi)容,就是一個(gè)最簡(jiǎn)單的表單
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>表單提交</title> </head> <body> <form action="user.php" method=""> 用戶名: <input type="text" name="user"> <br><br> 密 碼: <input type="password" name="pwd"> <br><br> 生 日: <input type="date" name="bday"><br><br> <input type="submit" value="提交數(shù)據(jù)"> </form> </body> </html>
form標(biāo)簽的methods
屬性是用來規(guī)定如何發(fā)送表單數(shù)據(jù),是使用get方式(method="get"
)還是post方式(method="post"
)。然后表單數(shù)據(jù)會(huì)發(fā)送到 action
屬性所規(guī)定的頁面,我們這就是user.php頁面中進(jìn)行處理。
而根據(jù)提交表單數(shù)據(jù)的方式不同,獲取表單數(shù)據(jù)的方法也有所不同:get方式可以使用預(yù)定義變量$_GET
來獲取;post方式可以使用預(yù)定義變量$_POST
來獲??;如果不知道 form 表單通過哪種方式提交數(shù)據(jù),就可以使用預(yù)定義變量$_REQUEST
來獲取,它兩種方式的數(shù)據(jù)都可以獲取。
下面就來一一了解:
1、使用預(yù)定義變量$_GET快速獲取表單數(shù)據(jù)(form表單需要設(shè)置為method="get"
)
在程序的開發(fā)過程中,由于 GET 方法提交的數(shù)據(jù)是附加到 URL 上發(fā)送的,因此在 URL 的地址欄中將會(huì)顯示“URL+用戶傳遞的參數(shù)”類型的信息,如下所示:
http://url?name1=value1&name2=value2 ...
-
name1、name2 為表單元素的名稱(有表單元素的name屬性設(shè)置),value1、value2 為表單元素的值。url和表單元素之間用“
?
”隔開,而多個(gè)表單元素之間用“&
”隔開,每個(gè)表單元素的格式都是“name=value”,固定不變。
我們添加一下user.html文件的表單看看URL 的地址欄
user.php文件中可以直接使用預(yù)定義變量$_GET來
獲取數(shù)據(jù),$_GET 全局變量是一個(gè)關(guān)聯(lián)數(shù)組,數(shù)組的鍵名為表單元素 name 的值,數(shù)組的值為對(duì)應(yīng)表單的值。(注只要是 URL 中的參數(shù)都可以使用 $_GET 獲取。)
<?php var_dump($_GET); ?>
可以使用$_GET['鍵名']的方式來一一獲取每個(gè)表單元素的值:
<?php header("content-type:text/html;charset=utf-8"); echo "用戶名為:".$_GET['user']."<br>生日為:".$_GET['bday']; ?>
2、使用預(yù)定義變量$_POST快速獲取表單數(shù)據(jù)(form表單需要設(shè)置為method="post"
)
post方法不依賴于 URL,不會(huì)將傳遞的參數(shù)值顯示在地址欄中。
$_POST
全局變量也是一個(gè)關(guān)聯(lián)數(shù)組,數(shù)組的鍵名為表單元素 name 的值,數(shù)組的值為對(duì)應(yīng)表單的值。
<?php header("content-type:text/html;charset=utf-8"); echo "用戶名為:".$_POST['user']."<br>生日為:".$_POST['bday']; ?>
3、使用預(yù)定義變量$_REQUEST快速獲取表單數(shù)據(jù)
$_REQUEST 全局變量是一個(gè)包含了 $_POST、$_GET 和 $_COOKIE 的數(shù)組,數(shù)組結(jié)構(gòu)與 $_POST 和 $_GET 類似。
<?php header("content-type:text/html;charset=utf-8"); var_dump($_REQUEST); echo "用戶名為:".$_REQUEST['user']."<br>生日為:".$_REQUEST['bday']; ?>
最后給大家推薦最新最全面的《PHP視頻教程》~快來學(xué)習(xí)吧!