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


Posted in PHP onJuly 28, 2014

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

将表单以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 相关文章推荐
php array_intersect()函数使用代码
Jan 14 PHP
PHP 上传文件大小限制
Jul 05 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 PHP
PHP7变量处理机制修改
Mar 09 PHP
thinkphp学习笔记之多表查询
Jul 28 #PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 #PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 #PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 #PHP
PHP实现多图片上传类实例
Jul 26 #PHP
PHP判断文章里是否有图片的简单方法
Jul 26 #PHP
php中创建和调用webservice接口示例
Jul 25 #PHP
You might like
PHP中其实也可以用方法链
2011/11/10 PHP
微信支付的开发流程详解
2016/09/13 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
Python 数据结构之旋转链表
2017/02/25 Python
Python实现的字典值比较功能示例
2018/01/08 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
python实现树形打印目录结构
2018/03/29 Python
Python3.5 Pandas模块之DataFrame用法实例分析
2019/04/23 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
Django在Model保存前记录日志实例
2020/05/14 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
C语言面试题
2013/05/19 面试题
绿色城市实施方案
2014/03/19 职场文书
车间质检员岗位职责
2015/04/08 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
离职告别感言
2015/08/04 职场文书
2016年情人节广告语
2016/01/28 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS