浅析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 高手之路(三)
Oct 09 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
destoon二次开发入门示例
Jun 20 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
php获取json数据所有的节点路径
May 17 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
PHP中Trait及其应用详解
Feb 14 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
python中的格式化输出用法总结
2016/07/28 Python
利用python求相邻数的方法示例
2017/08/18 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
大专生自我鉴定范文
2013/10/01 职场文书
任命书模板
2014/06/04 职场文书
精神文明建设标语
2014/06/16 职场文书
商务考察邀请函模板
2015/02/02 职场文书
起诉书格式范文
2015/05/20 职场文书
楚门的世界观后感
2015/06/03 职场文书
淮海战役观后感
2015/06/11 职场文书
golang正则之命名分组方式
2021/04/25 Golang