PHP $_POST 變數(shù)
PHP?$_POST?變數(shù)
在 PHP 中,預(yù)先定義的 $_POST 變數(shù)用於收集來自 method="post" 的表單中的值。
$_POST 變數(shù)
#預(yù)先定義的$_POST 變數(shù)用於收集來自method="post" 的表單中的值。
從帶有 POST 方法的表單發(fā)送的訊息,對(duì)任何人都是不可見的(不會(huì)顯示在瀏覽器的網(wǎng)址列),並且對(duì)發(fā)送訊息的量也沒有限制。
註解:然而,預(yù)設(shè)情況下,POST 方法的傳送訊息的量最大值為 8 MB(可透過設(shè)定 php.ini 檔案中的 post_max_size 進(jìn)行變更)。
實(shí)例
form.html?檔案程式碼如下:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <form action="welcome.php" method="post"> 名字: <input type="text" name="fname"> 年齡: <input type="text" name="age"> <input type="submit" value="提交"> </form> </body> </html>
當(dāng)使用者點(diǎn)擊"提交" 按鈕時(shí),URL 類似如下所示:
何時(shí)使用method="post"?
從帶有 POST 方法的表單發(fā)送的訊息,對(duì)任何人都是不可見的,並且對(duì)發(fā)送訊息的量也沒有限制。
然而,由於變數(shù)不顯示在 URL 中,所以無法把頁面加入書籤。
PHP $_REQUEST 變數(shù)
預(yù)先定義的 $_REQUEST 變數(shù)包含了 $_GET、$_POST 和 $_COOKIE 的內(nèi)容。
$_REQUEST 變數(shù)可用來收集透過 GET 和 POST 方法傳送的表單資料。
實(shí)例
你可以將 "welcome.php" 檔案修改為以下程式碼,它可以接受 $_GET、$_POST等資料。
歡迎<?php echo $_REQUEST["fname"]; ?>!<br>
你的年齡是<?php echo $_REQUEST["age"] ; ?>? 歲。
?
GET和POST傳值方式的差異:
1,Get將表單中資料的依照variable=value的形式,加入action所指向的URL後面,並且兩者使用「?」連接,而各個(gè)變數(shù)之間使用「&」連接;Post是將表單中的資料放在form的資料體中,按照變數(shù)和值相對(duì)應(yīng)的方式,傳遞到action所指向URL。
2,Get是不安全的,因?yàn)樵趥鬏斶^程,資料被放在請(qǐng)求的URL中,而如今現(xiàn)有的許多伺服器、代理伺服器或使用者代理都會(huì)將請(qǐng)求URL記錄到日誌檔案中,然後放在某個(gè)地方,這樣就可能會(huì)有一些隱私的資訊被第三方看到。另外,使用者也可以在瀏覽器上直接看到提交的數(shù)據(jù),有些系統(tǒng)內(nèi)部訊息將會(huì)一同顯示在使用者面前。 Post的所有操作對(duì)使用者來說都是不可見的。
3,Get傳輸?shù)臄?shù)據(jù)量小,這主要是因?yàn)槭躑RL長(zhǎng)度限制;而Post可以傳輸大量的數(shù)據(jù),所以在上傳文件只能使用Post(當(dāng)然還有一個(gè)原因,將在後面的提到)。
4,Get限制Form表單的資料集的值必須為ASCII字元;而Post支援整個(gè)ISO10646字元集。
5,Get是Form的預(yù)設(shè)方法。