程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 淺析get與post的一些特殊情況,淺析getpost

淺析get與post的一些特殊情況,淺析getpost

編輯:關於PHP編程

淺析get與post的一些特殊情況,淺析getpost


最近在做一些有關文件上傳等的工作,途中遇到了以下問題:

將表單以post方式提交給一個有參數的url(如:res.php?param=aaa),這樣的得到的結果將會是什麼呢?

下面就從幾個例子將有關get與post的相關內容進行測試,首先看一下最簡單的

<html>
<body>
<?php
echo $_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的方式提交到已經有這個參數的url,結果是對應的value進行了覆蓋,獲得了的param的為bbb.
如果url裡面參數,但是和表單裡面的name不同呢?看下面測試例子

<html>
<body>
<?php
echo $_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>

這個的結果是正確的得到了param2的值,但是沒有得到param1的值,說明以get方式提交均將原先url的參數去除了.
下面再看一下post方式提交的情況

首先看一下name值相同時的情況

<html>
<body>
<?php
echo "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>

這種情況下,輸出的結果是get方式獲得的是aaa,post方式獲取的是bbb,說明此種情況下互不影響.get與post單獨隔離開了.
下面看一下使用post方式獲取url後面的參數如何

<html>
<body>
<?php
echo "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>

此種情況下,獲取的參數全部為空,所以可以說php中get與post獲取的參數是相互隔離的.
不過今天使用java進行文件上傳的時候,可以正確的獲取所有數據,即servlet裡面可以使用request獲取不論是post的表單數據或者是url後的get數據.畢竟servlet中獲取參數的方法是一樣的.


get與post方式提交的主要不同,分別說出它們的一種使用情況

get地址欄裡能直接看到提交的參數,並且大小是有限制的,不同的浏覽器限制的字節不同
post不限制大小,地址欄看不到

查詢的可以用get
其他操作盡量用post
 

與POST方法比較起來,GET方法具有的特點是啥?

選C
1. 區別: 在Form裡面,可以使用post也可以使用get。它們都是method的合法取值。但是,post和get方法在使用上至少有以下幾點不同: 1、Get方法通過URL請求來傳遞用戶的輸入。Get方法傳遞的參數和值在URL上用?name=value&name=value的形式顯示。Post方法通過另外的形式。 2、通過get方法提交數據,可能會帶來安全性的問題。比如一個登陸頁面。當通過get方法提交數據時,用戶名和密碼將出現在URL上。如果登陸頁面可以被浏覽器緩存或其他人可以訪問客戶的這台機器。那麼,別人即可以從浏覽器的歷史記錄中,讀取到此客戶的賬號和密碼。所以,在某些情況下,get方法會帶來嚴重的安全性問題。 3、顯然Get方法局限性在於當要傳的值很多是,就不便這樣,否則URL可能超長度而出錯。 本人認為如非必要的情況下用post,安全性高一些
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved