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

5年以前  |  阅读数:375 次  |  编程语言:PHP 

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

将表单以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中获取参数的方法是一样的.

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例