程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP form 表單傳參明細研究

PHP form 表單傳參明細研究

編輯:PHP綜合
為什麼呢?因為表單的處理有GET和POST兩種,怎麼在這兩種表單中都要傳遞一直do參數,而且要在後台通過同樣的方式獲取就一直是個很困惑的問題,今天經過幾個小時的實驗終於搞懂了,特發此文。
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參數設置
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved