原文地址:http://www.jb51.net/article/19174.htm
Get表單
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gbk"/>
<title>表單使用GET方式傳值</title>
</head>
<body>
<!-- action中的parm參數的值是無法傳遞到action-get.php的 -->
<form action="action-get.php?parm=url-get" method="get">
<p>
姓名:<input type="text" name="name" />
<!-- 隱藏變量傳值 -->
<input type="hidden" name="hkey" value="hvalue" />
<!-- GET表單的隱藏變量傳值可以通過$_GET["do"]獲取 -->
<input type="hidden" name="do" value="index" />
<!-- submit不設置name屬性則不會出現在url中 -->
<input type="submit" value="提交"/>
</p>
</form>
</body>
</html>
Get表單處理php
<?php
echo "參數 name 的值通過\$_GET獲取爲 ".$_GET["name"]." ,";
echo "參數 name 的值通過\$_POST獲取爲 ".$_POST["name"]." ,";
echo "參數 name 的值通過\$_REQUEST獲取爲 ".$_REQUEST["name"]." .\r\n";
echo "參數 parm 的值通過\$_GET獲取爲 ".$_GET["parm"]." ,";
echo "參數 parm 的值通過\$_POST獲取爲 ".$_POST["parm"]." ,";
echo "參數 parm 的值通過\$_REQUEST獲取爲 ".$_REQUEST["parm"]." .\r\n";
echo "參數 hkey 的值通過\$_GET獲取爲 ".$_GET["hkey"]." ,";
echo "參數 hkey 的值通過\$_POST獲取爲 ".$_POST["hkey"]." ,";
echo "參數 hkey 的值通過\$_REQUEST獲取爲 ".$_REQUEST["hkey"]." .\r\n";
echo "參數 do 的值通過\$_GET獲取爲 ".$_GET["do"]." ,";
echo "參數 do 的值通過\$_POST獲取爲 ".$_POST["do"]." ,";
echo "參數 do 的值通過\$_REQUEST獲取爲 ".$_REQUEST["do"]." .\r\n";
?>
輸出結果
參數 name 的值通過$_GET獲取爲 kj ,參數 name 的值通過$_POST獲取爲 ,參數 name 的值通過$_REQUEST獲取爲 kj .
參數 parm 的值通過$_GET獲取爲 ,參數 parm 的值通過$_POST獲取爲 ,參數 parm 的值通過$_REQUEST獲取爲 .
參數 hkey 的值通過$_GET獲取爲 hvalue ,參數 hkey 的值通過$_POST獲取爲 ,參數 hkey 的值通過$_REQUEST獲取爲 hvalue .
參數 do 的值通過$_GET獲取爲 index ,參數 do 的值通過$_POST獲取爲 ,參數 do 的值通過$_REQUEST獲取爲 index .
結論:get表單可以使用$_GET獲取表單內值,但通過action的url設置的參數獲取不到;$_POST不能獲取Get表單的任意值;$_REQUEST獲取的內容同$_GET。
Post表單
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gbk"/>
<title>表單使用POST方式傳值</title>
</head>
<body>
<!-- action中的parm和do參數可以在action-post.php中通過$_GET方式獲取 -->
<form action="action-post.php?parm=url-post&do=index" method="post">
<p>
姓名:<input type="text" name="name" />
<!-- 隱藏變量傳值 -->
<input type="hidden" name="hkey" value="hvalue" />
<input type="submit" value="提交"/>
</p>
</form>
</body>
</html>
Post表單處理php
<?php
echo "參數 name 的值通過\$_GET獲取爲 ".$_GET["name"]." ,";
echo "參數 name 的值通過\$_POST獲取爲 ".$_POST["name"]." ,";
echo "參數 name 的值通過\$_REQUEST獲取爲 ".$_REQUEST["name"]." .\r\n";
echo "參數 parm 的值通過\$_GET獲取爲 ".$_GET["parm"]." ,";
echo "參數 parm 的值通過\$_POST獲取爲 ".$_POST["parm"]." ,";
echo "參數 parm 的值通過\$_REQUEST獲取爲 ".$_REQUEST["parm"]." .\r\n";
echo "參數 hkey 的值通過\$_GET獲取爲 ".$_GET["hkey"]." ,";
echo "參數 hkey 的值通過\$_POST獲取爲 ".$_POST["hkey"]." ,";
echo "參數 hkey 的值通過\$_REQUEST獲取爲 ".$_REQUEST["hkey"]." .\r\n";
echo "參數 do 的值通過\$_GET獲取爲 ".$_GET["do"]." ,";
echo "參數 do 的值通過\$_POST獲取爲 ".$_POST["do"]." ,";
echo "參數 do 的值通過\$_REQUEST獲取爲 ".$_REQUEST["do"]." .\r\n";
?>
輸出結果
參數 name 的值通過$_GET獲取爲 ,參數 name 的值通過$_POST獲取爲 zkj ,參數 name 的值通過$_REQUEST獲取爲 zkj .
參數 parm 的值通過$_GET獲取爲 url-post ,參數 parm 的值通過$_POST獲取爲 ,參數 parm 的值通過$_REQUEST獲取爲 url-post .
參數 hkey 的值通過$_GET獲取爲 ,參數 hkey 的值通過$_POST獲取爲 hvalue ,參數 hkey 的值通過$_REQUEST獲取爲 hvalue .
參數 do 的值通過$_GET獲取爲 index ,參數 do 的值通過$_POST獲取爲 ,參數 do 的值通過$_REQUEST獲取爲 index .
結論:Post表單可以使用$_POST獲取表單裏值,但不能獲取action的url中的參數;$_GET可以獲取action的url中的參數,但不能獲取表單內的值;$_REQUEST所有值都可以獲取。
同一名稱變量都可以使用$_GET獲取,但在get表單中通過隱藏變量設置,在post表單中通過action的url參數設置。
GET vs. POST
GET 和 POST 都創建數組(例如,array( key => value, key2 => value2, key3 => value3, ...))。此數組包含鍵/值對,其中的鍵是表單控件的名稱,而值是來自用戶的輸入數據。
GET 和 POST 被視作 $_GET 和 $_POST。它們是超全局變量,這意味着對它們的訪問無需考慮作用域 - 無需任何特殊代碼,您能夠從任何函數、類或文件訪問它們。
$_GET 是通過 URL 參數傳遞到當前腳本的變量數組。
$_POST 是通過 HTTP POST 傳遞到當前腳本的變量數組。
何時使用 GET?
通過 GET 方法從表單發送的信息對任何人都是可見的(所有變量名和值都顯示在 URL 中)。GET 對所發送信息的數量也有限制。限制在大於 2000 個字符。不過,由於變量顯示在 URL 中,把頁面添加到書籤中也更爲方便。
GET 可用於發送非敏感的數據。
註釋:絕不能使用 GET 來發送密碼或其他敏感信息!
何時使用 POST?
通過 POST 方法從表單發送的信息對其他人是不可見的(所有名稱/值會被嵌入 HTTP 請求的主體中),並且對所發送信息的數量也無限制。
此外 POST 支持高階功能,比如在向服務器上傳文件時進行 multi-part 二進制輸入。
不過,由於變量未顯示在 URL 中,也就無法將頁面添加到書籤。
提示:開發者偏愛 POST 來發送表單數據。