浅析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 mssql 数据库分页SQL语句
Dec 16 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
深入解析php中的foreach函数
Aug 31 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php header函数的常用http头设置
Jun 25 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
PHP数组array类常见操作示例
May 15 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 图片上传实现代码 带详细注释
2010/04/29 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
php中spl_autoload详解
2014/10/17 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
学生档案自我鉴定
2013/10/07 职场文书
园林施工员岗位职责
2013/12/11 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
学生请假条格式
2014/04/11 职场文书
老兵退伍标语
2014/10/07 职场文书
老乡聚会通知
2015/04/23 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript