PHP 超全局變量 $_GET 和 $_POST 用于收集表單數(shù)據(jù)(form-data)。
下面的例子顯示了一個(gè)簡(jiǎn)單的 HTML 表單,它包含兩個(gè)輸入字段和一個(gè)提交按鈕:
<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>
當(dāng)用戶填寫(xiě)此表單并點(diǎn)擊提交按鈕后,表單數(shù)據(jù)會(huì)發(fā)送到名為 "welcome.php" 的 PHP 文件供處理。表單數(shù)據(jù)是通過(guò) HTTP POST 方法發(fā)送的。
如需顯示出被提交的數(shù)據(jù),您可以簡(jiǎn)單地輸出(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 方法也能得到相同的結(jié)果:
<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>
上面的代碼很簡(jiǎn)單。不過(guò),最重要的內(nèi)容被漏掉了。您需要對(duì)表單數(shù)據(jù)進(jìn)行驗(yàn)證,以防止腳本出現(xiàn)漏洞。
注意:在處理 PHP 表單時(shí)請(qǐng)關(guān)注安全!
本頁(yè)未包含任何表單驗(yàn)證程序,它只向我們展示如何發(fā)送并接收表單數(shù)據(jù)。
不過(guò)稍后的章節(jié)會(huì)為您講解如何提高 PHP 表單的安全性!對(duì)表單適當(dāng)?shù)陌踩?yàn)證對(duì)于抵御黑客攻擊和垃圾郵件非常重要!
GET 和 POST 都創(chuàng)建數(shù)組(例如,array( key => value, key2 => value2, key3 => value3, ...))。此數(shù)組包含鍵/值對(duì),其中的鍵是表單控件的名稱,而值是來(lái)自用戶的輸入數(shù)據(jù)。
GET 和 POST 被視作 $_GET 和 $_POST。它們是超全局變量,這意味著對(duì)它們的訪問(wèn)無(wú)需考慮作用域 - 無(wú)需任何特殊代碼,您能夠從任何函數(shù)、類(lèi)或文件訪問(wèn)它們。
$_GET 是通過(guò) URL 參數(shù)傳遞到當(dāng)前腳本的變量數(shù)組。
$_POST 是通過(guò) HTTP POST 傳遞到當(dāng)前腳本的變量數(shù)組。
通過(guò) GET 方法從表單發(fā)送的信息對(duì)任何人都是可見(jiàn)的(所有變量名和值都顯示在 URL 中)。GET 對(duì)所發(fā)送信息的數(shù)量也有限制。限制在大于 2000 個(gè)字符。不過(guò),由于變量顯示在 URL 中,把頁(yè)面添加到書(shū)簽中也更為方便。
GET 可用于發(fā)送非敏感的數(shù)據(jù)。
注釋:絕不能使用 GET 來(lái)發(fā)送密碼或其他敏感信息!
通過(guò) POST 方法從表單發(fā)送的信息對(duì)其他人是不可見(jiàn)的(所有名稱/值會(huì)被嵌入 HTTP 請(qǐng)求的主體中),并且對(duì)所發(fā)送信息的數(shù)量也無(wú)限制。
此外 POST 支持高階功能,比如在向服務(wù)器上傳文件時(shí)進(jìn)行 multi-part 二進(jìn)制輸入。
不過(guò),由于變量未顯示在 URL 中,也就無(wú)法將頁(yè)面添加到書(shū)簽。
提示:開(kāi)發(fā)者偏愛(ài) POST 來(lái)發(fā)送表單數(shù)據(jù)。
接下來(lái)讓我們看看如何安全地處理 PHP 表單!
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇
Powered by 365建站網(wǎng) RSS地圖 HTML地圖
copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)