Heim >Backend-Entwicklung >PHP-Tutorial >浅析get与post的一些特殊情况,浅析getpost_PHP教程

浅析get与post的一些特殊情况,浅析getpost_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:22:04894Durchsuche

浅析get与post的一些特殊情况,浅析getpost

最近在做一些有关文件上传等的工作,途中遇到了以下问题:

将表单以post方式提交给一个有参数的url(如:res.php?param=aaa),这样的得到的结果将会是什么呢?

下面就从几个例子将有关get与post的相关内容进行测试,首先看一下最简单的

<html>
<body>
<&#63;php
echo $_GET ['param'];
&#63;>
 <form action="get_post_test.php&#63;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>
<&#63;php
echo $_GET ['param1'];
echo "<br>";
echo $_GET ['param2'];
&#63;>
 <form action="get_post_test.php&#63;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>
<&#63;php
echo "get=" . $_GET ['param'];
echo "<br>";
echo "post=" . $_POST ['param'];
&#63;>
 <form action="get_post_test.php&#63;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>
<&#63;php
echo "get=" . $_GET ['param2'];
echo "<br>";
echo "post=" . $_POST ['param1'];
&#63;>
 <form action="get_post_test.php&#63;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,安全性高一些
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/851349.htmlTechArticle浅析get与post的一些特殊情况,浅析getpost 最近在做一些有关文件上传等的工作,途中遇到了以下问题: 将表单以post方式提交给一个有参数的...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn