浅析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 相关文章推荐
Discuz! Passport 通行证整合
Mar 27 PHP
使用PHP实现二分查找算法代码分享
Jun 24 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
php类自动加载器实现方法
Jul 28 PHP
PHP实现微信发红包程序
Aug 24 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
php-msf源码详解
Dec 25 PHP
php删除二维数组中的重复值方法
Mar 12 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
用PHP开发GUI
2006/10/09 PHP
初探PHP5
2006/10/09 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
保荐人的岗位职责
2013/11/19 职场文书
旅游活动总结
2014/08/27 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
党员检讨书
2014/10/13 职场文书
见习期个人总结
2015/03/05 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
Win10系统下配置Java环境变量
2021/06/13 Java/Android
MySQL创建管理KEY分区
2022/04/13 MySQL