浅析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 xml文件操作代码(一)
Mar 20 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
php生成圆角图片的方法
Apr 07 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 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
超级实用的7个PHP代码片段分享
2012/01/05 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
Python使用三种方法实现PCA算法
2017/12/12 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
使用tensorflow实现线性回归
2018/09/08 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
python装饰器代替set get方法实例
2019/12/19 Python
python属于跨平台语言码
2020/06/09 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
12月小学生校园广播稿
2014/02/04 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
党员2014两会学习心得体会
2014/03/17 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server