PHP form 表單傳參明細研究
更新時間:2009年07月17日 00:34:07 作者:
最近一段時間一直在做基于uchome的二次開發(fā)網(wǎng)站,因uchome中的很多跳轉(zhuǎn)都是通過參數(shù)do來控制的,一直對這種機制不是十分的明細,總有一種霧里看花的感覺。
為什么呢?因為表單的處理有GET和POST兩種,怎么在這兩種表單中都要傳遞一直do參數(shù),而且要在后臺通過同樣的方式獲取就一直是個很困惑的問題,今天經(jīng)過幾個小時的實驗終于搞懂了,特發(fā)此文。
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參數(shù)的值是無法傳遞到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屬性則不會出現(xiàn)在url中 -->
<input type="submit" value="提交"/>
</p>
</form>
</body>
</html>
處理GET表單的PHP:
<pre>
<?php
echo "參數(shù) name 的值通過\$_GET獲取為 ".$_GET["name"]." ,";
echo "參數(shù) name 的值通過\$_POST獲取為 ".$_POST["name"]." ,";
echo "參數(shù) name 的值通過\$_REQUEST獲取為 ".$_REQUEST["name"]." .\r\n";
echo "參數(shù) parm 的值通過\$_GET獲取為 ".$_GET["parm"]." ,";
echo "參數(shù) parm 的值通過\$_POST獲取為 ".$_POST["parm"]." ,";
echo "參數(shù) parm 的值通過\$_REQUEST獲取為 ".$_REQUEST["parm"]." .\r\n";
echo "參數(shù) hkey 的值通過\$_GET獲取為 ".$_GET["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_POST獲取為 ".$_POST["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_REQUEST獲取為 ".$_REQUEST["hkey"]." .\r\n";
echo "參數(shù) do 的值通過\$_GET獲取為 ".$_GET["do"]." ,";
echo "參數(shù) do 的值通過\$_POST獲取為 ".$_POST["do"]." ,";
echo "參數(shù) do 的值通過\$_REQUEST獲取為 ".$_REQUEST["do"]." .\r\n";
?>
</pre>
處理結果輸出:
參數(shù) name 的值通過$_GET獲取為 kj ,參數(shù) name 的值通過$_POST獲取為 ,參數(shù) name 的值通過$_REQUEST獲取為 kj .
參數(shù) parm 的值通過$_GET獲取為 ,參數(shù) parm 的值通過$_POST獲取為 ,參數(shù) parm 的值通過$_REQUEST獲取為 .
參數(shù) hkey 的值通過$_GET獲取為 hvalue ,參數(shù) hkey 的值通過$_POST獲取為 ,參數(shù) hkey 的值通過$_REQUEST獲取為 hvalue .
參數(shù) do 的值通過$_GET獲取為 index ,參數(shù) do 的值通過$_POST獲取為 ,參數(shù) do 的值通過$_REQUEST獲取為 index .
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參數(shù)可以在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:
<pre>
<?php
echo "參數(shù) name 的值通過\$_GET獲取為 ".$_GET["name"]." ,";
echo "參數(shù) name 的值通過\$_POST獲取為 ".$_POST["name"]." ,";
echo "參數(shù) name 的值通過\$_REQUEST獲取為 ".$_REQUEST["name"]." .\r\n";
echo "參數(shù) parm 的值通過\$_GET獲取為 ".$_GET["parm"]." ,";
echo "參數(shù) parm 的值通過\$_POST獲取為 ".$_POST["parm"]." ,";
echo "參數(shù) parm 的值通過\$_REQUEST獲取為 ".$_REQUEST["parm"]." .\r\n";
echo "參數(shù) hkey 的值通過\$_GET獲取為 ".$_GET["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_POST獲取為 ".$_POST["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_REQUEST獲取為 ".$_REQUEST["hkey"]." .\r\n";
echo "參數(shù) do 的值通過\$_GET獲取為 ".$_GET["do"]." ,";
echo "參數(shù) do 的值通過\$_POST獲取為 ".$_POST["do"]." ,";
echo "參數(shù) do 的值通過\$_REQUEST獲取為 ".$_REQUEST["do"]." .\r\n";
?>
</pre>
處理結果輸出:
參數(shù) name 的值通過$_GET獲取為 ,參數(shù) name 的值通過$_POST獲取為 zkj ,參數(shù) name 的值通過$_REQUEST獲取為 zkj .
參數(shù) parm 的值通過$_GET獲取為 url-post ,參數(shù) parm 的值通過$_POST獲取為 ,參數(shù) parm 的值通過$_REQUEST獲取為 url-post .
參數(shù) hkey 的值通過$_GET獲取為 ,參數(shù) hkey 的值通過$_POST獲取為 hvalue ,參數(shù) hkey 的值通過$_REQUEST獲取為 hvalue .
參數(shù) do 的值通過$_GET獲取為 index ,參數(shù) do 的值通過$_POST獲取為 ,參數(shù) do 的值通過$_REQUEST獲取為 index .
結論:
GET表單值可以通過_GET獲取;但通過action的url參數(shù)設置的參數(shù)總是獲取不到的
POST表單值可以通過_POST獲?。坏ㄟ^action的url參數(shù)設置的參數(shù)則可以通過_GET獲取到
同一變量都可以通過_GET獲取,但在GET表單中通過隱藏變量設置,在POST表單中則通過action的url參數(shù)設置
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參數(shù)的值是無法傳遞到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屬性則不會出現(xiàn)在url中 -->
<input type="submit" value="提交"/>
</p>
</form>
</body>
</html>
處理GET表單的PHP:
復制代碼 代碼如下:
<pre>
<?php
echo "參數(shù) name 的值通過\$_GET獲取為 ".$_GET["name"]." ,";
echo "參數(shù) name 的值通過\$_POST獲取為 ".$_POST["name"]." ,";
echo "參數(shù) name 的值通過\$_REQUEST獲取為 ".$_REQUEST["name"]." .\r\n";
echo "參數(shù) parm 的值通過\$_GET獲取為 ".$_GET["parm"]." ,";
echo "參數(shù) parm 的值通過\$_POST獲取為 ".$_POST["parm"]." ,";
echo "參數(shù) parm 的值通過\$_REQUEST獲取為 ".$_REQUEST["parm"]." .\r\n";
echo "參數(shù) hkey 的值通過\$_GET獲取為 ".$_GET["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_POST獲取為 ".$_POST["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_REQUEST獲取為 ".$_REQUEST["hkey"]." .\r\n";
echo "參數(shù) do 的值通過\$_GET獲取為 ".$_GET["do"]." ,";
echo "參數(shù) do 的值通過\$_POST獲取為 ".$_POST["do"]." ,";
echo "參數(shù) do 的值通過\$_REQUEST獲取為 ".$_REQUEST["do"]." .\r\n";
?>
</pre>
處理結果輸出:
參數(shù) name 的值通過$_GET獲取為 kj ,參數(shù) name 的值通過$_POST獲取為 ,參數(shù) name 的值通過$_REQUEST獲取為 kj .
參數(shù) parm 的值通過$_GET獲取為 ,參數(shù) parm 的值通過$_POST獲取為 ,參數(shù) parm 的值通過$_REQUEST獲取為 .
參數(shù) hkey 的值通過$_GET獲取為 hvalue ,參數(shù) hkey 的值通過$_POST獲取為 ,參數(shù) hkey 的值通過$_REQUEST獲取為 hvalue .
參數(shù) do 的值通過$_GET獲取為 index ,參數(shù) do 的值通過$_POST獲取為 ,參數(shù) do 的值通過$_REQUEST獲取為 index .
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參數(shù)可以在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:
復制代碼 代碼如下:
<pre>
<?php
echo "參數(shù) name 的值通過\$_GET獲取為 ".$_GET["name"]." ,";
echo "參數(shù) name 的值通過\$_POST獲取為 ".$_POST["name"]." ,";
echo "參數(shù) name 的值通過\$_REQUEST獲取為 ".$_REQUEST["name"]." .\r\n";
echo "參數(shù) parm 的值通過\$_GET獲取為 ".$_GET["parm"]." ,";
echo "參數(shù) parm 的值通過\$_POST獲取為 ".$_POST["parm"]." ,";
echo "參數(shù) parm 的值通過\$_REQUEST獲取為 ".$_REQUEST["parm"]." .\r\n";
echo "參數(shù) hkey 的值通過\$_GET獲取為 ".$_GET["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_POST獲取為 ".$_POST["hkey"]." ,";
echo "參數(shù) hkey 的值通過\$_REQUEST獲取為 ".$_REQUEST["hkey"]." .\r\n";
echo "參數(shù) do 的值通過\$_GET獲取為 ".$_GET["do"]." ,";
echo "參數(shù) do 的值通過\$_POST獲取為 ".$_POST["do"]." ,";
echo "參數(shù) do 的值通過\$_REQUEST獲取為 ".$_REQUEST["do"]." .\r\n";
?>
</pre>
處理結果輸出:
參數(shù) name 的值通過$_GET獲取為 ,參數(shù) name 的值通過$_POST獲取為 zkj ,參數(shù) name 的值通過$_REQUEST獲取為 zkj .
參數(shù) parm 的值通過$_GET獲取為 url-post ,參數(shù) parm 的值通過$_POST獲取為 ,參數(shù) parm 的值通過$_REQUEST獲取為 url-post .
參數(shù) hkey 的值通過$_GET獲取為 ,參數(shù) hkey 的值通過$_POST獲取為 hvalue ,參數(shù) hkey 的值通過$_REQUEST獲取為 hvalue .
參數(shù) do 的值通過$_GET獲取為 index ,參數(shù) do 的值通過$_POST獲取為 ,參數(shù) do 的值通過$_REQUEST獲取為 index .
結論:
GET表單值可以通過_GET獲取;但通過action的url參數(shù)設置的參數(shù)總是獲取不到的
POST表單值可以通過_POST獲?。坏ㄟ^action的url參數(shù)設置的參數(shù)則可以通過_GET獲取到
同一變量都可以通過_GET獲取,但在GET表單中通過隱藏變量設置,在POST表單中則通過action的url參數(shù)設置
您可能感興趣的文章:
相關文章
WordPress中重置文章循環(huán)的rewind_posts()函數(shù)講解
這篇文章主要介紹了WordPress中的文章循環(huán)重置函數(shù)rewind_posts()講解,附帶不依賴循環(huán)的single_cat_title()函數(shù)的用法介紹,需要的朋友可以參考下2016-01-01
PHP error_log()將錯誤信息寫入一個文件(定義和用法)
PHP error_log()定義和用法,帶有二個簡單小例子加函數(shù)解釋2013-10-10
PHP實現(xiàn)的通過參數(shù)生成MYSQL語句類完整實例
這篇文章主要介紹了PHP實現(xiàn)的通過參數(shù)生成MYSQL語句類,結合完整實例形式分析了生成MYSQL語句類的實現(xiàn)與使用技巧,需要的朋友可以參考下2016-04-04

