PHP form 表單傳參明細研究
更新時間:2009年07月17日 00:34:07 作者:
最近一段時間一直在做基于uchome的二次開發(fā)網站,因uchome中的很多跳轉都是通過參數do來控制的,一直對這種機制不是十分的明細,總有一種霧里看花的感覺。
為什么呢?因為表單的處理有GET和POST兩種,怎么在這兩種表單中都要傳遞一直do參數,而且要在后臺通過同樣的方式獲取就一直是個很困惑的問題,今天經過幾個小時的實驗終于搞懂了,特發(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參數的值是無法傳遞到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:
<pre>
<?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";
?>
</pre>
處理結果輸出:
參數 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 .
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:
<pre>
<?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";
?>
</pre>
處理結果輸出:
參數 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 .
結論:
GET表單值可以通過_GET獲?。坏ㄟ^action的url參數設置的參數總是獲取不到的
POST表單值可以通過_POST獲??;但通過action的url參數設置的參數則可以通過_GET獲取到
同一變量都可以通過_GET獲取,但在GET表單中通過隱藏變量設置,在POST表單中則通過action的url參數設置
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:
復制代碼 代碼如下:
<pre>
<?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";
?>
</pre>
處理結果輸出:
參數 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 .
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:
復制代碼 代碼如下:
<pre>
<?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";
?>
</pre>
處理結果輸出:
參數 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 .
結論:
GET表單值可以通過_GET獲?。坏ㄟ^action的url參數設置的參數總是獲取不到的
POST表單值可以通過_POST獲??;但通過action的url參數設置的參數則可以通過_GET獲取到
同一變量都可以通過_GET獲取,但在GET表單中通過隱藏變量設置,在POST表單中則通過action的url參數設置
相關文章
PHPExcel導出Excel報錯:PHPExcel_IOFactory::load()的解決方案
這篇文章主要介紹了PHPExcel導出Excel報錯:PHPExcel_IOFactory::load()的解決方案,文中有詳細的問題分析和解決方法供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-11-11php checkdate、getdate等日期時間函數操作詳解
PHP的日期時間函數date()中介紹了PHP日期時間函數的簡單用法,這類將介紹更多的函數來豐富我們的應用。2010-03-03