|
最近在做一些有關(guān)文件上傳等的工作,途中遇到了以下問題:
將表單以post方式提交給一個有參數(shù)的url(如:res.php?param=aaa),這樣的得到的結(jié)果將會是什么呢?
下面就從幾個例子將有關(guān)get與post的相關(guān)內(nèi)容進(jìn)行測試,首先看一下最簡單的
<html><body><?phpecho $_GET ['param'];?> <form action="get_post_test.php?param=aaa" method="get"> <input type="text" name="param" value="bbb" /> <input type="submit" value="submit"> </form></body></html>
以get的方式提交到已經(jīng)有這個參數(shù)的url,結(jié)果是對應(yīng)的value進(jìn)行了覆蓋,獲得了的param的為bbb.
如果url里面參數(shù),但是和表單里面的name不同呢?看下面測試?yán)?/p>
<html><body><?phpecho $_GET ['param1'];echo "<br>";echo $_GET ['param2'];?> <form action="get_post_test.php?param1=aaa" method="get"> <input type="text" name="param2" value="bbb" /> <input type="submit" value="submit"> </form></body></html>
這個的結(jié)果是正確的得到了param2的值,但是沒有得到param1的值,說明以get方式提交均將原先url的參數(shù)去除了.
下面再看一下post方式提交的情況
首先看一下name值相同時的情況
<html><body><?phpecho "get=" . $_GET ['param'];echo "<br>";echo "post=" . $_POST ['param'];?> <form action="get_post_test.php?param=aaa" method="post"> <input type="text" name="param" value="bbb" /> <input type="submit" value="submit"> </form></body></html>
這種情況下,輸出的結(jié)果是get方式獲得的是aaa,post方式獲取的是bbb,說明此種情況下互不影響.get與post單獨(dú)隔離開了.
下面看一下使用post方式獲取url后面的參數(shù)如何
<html><body><?phpecho "get=" . $_GET ['param2'];echo "<br>";echo "post=" . $_POST ['param1'];?> <form action="get_post_test.php?param1=aaa" method="post"> <input type="text" name="param2" value="bbb" /> <input type="submit" value="submit"> </form></body></html>
此種情況下,獲取的參數(shù)全部為空,所以可以說php中g(shù)et與post獲取的參數(shù)是相互隔離的.
不過今天使用Java進(jìn)行文件上傳的時候,可以正確的獲取所有數(shù)據(jù),即servlet里面可以使用request獲取不論是post的表單數(shù)據(jù)或者是url后的get數(shù)據(jù).畢竟servlet中獲取參數(shù)的方法是一樣的.
php技術(shù):淺析get與post的一些特殊情況,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。