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不設(shè)置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>
處理結(jié)果輸出:
參數(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>
處理結(jié)果輸出:
參數(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 .
結(jié)論:
GET表單值可以通過_GET獲取;但通過action的url參數(shù)設(shè)置的參數(shù)總是獲取不到的
POST表單值可以通過_POST獲取;但通過action的url參數(shù)設(shè)置的參數(shù)則可以通過_GET獲取到
同一變量都可以通過_GET獲取,但在GET表單中通過隱藏變量設(shè)置,在POST表單中則通過action的url參數(shù)設(shè)置
GET表單:
復(fù)制代碼 代碼如下:
<!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不設(shè)置name屬性則不會出現(xiàn)在url中 -->
<input type="submit" value="提交"/>
</p>
</form>
</body>
</html>
處理GET表單的PHP:
復(fù)制代碼 代碼如下:
<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>
處理結(jié)果輸出:
參數(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 表單:
復(fù)制代碼 代碼如下:
<!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:
復(fù)制代碼 代碼如下:
<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>
處理結(jié)果輸出:
參數(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 .
結(jié)論:
GET表單值可以通過_GET獲取;但通過action的url參數(shù)設(shè)置的參數(shù)總是獲取不到的
POST表單值可以通過_POST獲取;但通過action的url參數(shù)設(shè)置的參數(shù)則可以通過_GET獲取到
同一變量都可以通過_GET獲取,但在GET表單中通過隱藏變量設(shè)置,在POST表單中則通過action的url參數(shù)設(shè)置
您可能感興趣的文章:
相關(guān)文章
php實現(xiàn)跨域提交form表單的方法【2種方法】
這篇文章主要介紹了php實現(xiàn)跨域提交form表單的方法,結(jié)合實例形式分析了curl及ajax兩種方法進行跨域提交的操作技巧,需要的朋友可以參考下2016-10-10PHPExcel導(dǎo)出Excel報錯:PHPExcel_IOFactory::load()的解決方案
這篇文章主要介紹了PHPExcel導(dǎo)出Excel報錯:PHPExcel_IOFactory::load()的解決方案,文中有詳細的問題分析和解決方法供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-11-11php checkdate、getdate等日期時間函數(shù)操作詳解
PHP的日期時間函數(shù)date()中介紹了PHP日期時間函數(shù)的簡單用法,這類將介紹更多的函數(shù)來豐富我們的應(yīng)用。2010-03-03