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

2015-01-24信息快讯网

这篇文章主要介绍了get与post的一些特殊情况,需要的朋友可以参考下

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

将表单以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使用pdo连接报错Connection failed SQLSTATE的解决方法
PHP缓存集成库phpFastCache用法
yii中widget的用法
Yii核心组件AssetManager原理分析
phpstorm配置Xdebug进行调试PHP教程
phpstorm编辑器乱码问题解决
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
PHP使用get_headers函数判断远程文件是否存在的方法
smarty中post用法实例
php中fgetcsv()函数用法实例
PHP魔术方法__GET、__SET使用实例
使用PHP Socket 编程模拟Http post和get请求
ThinkPHP中I(),U(),$this->post()等函数用法
php使用fsockopen函数发送post,get请求获取网页内容的方法
PHP基于CURL进行POST数据上传实例
php中error与exception的区别及应用
thinkphp学习笔记之多表查询
PHP中file_exists函数不支持中文名的解决方法
PHP中可以自动分割查询字符的Parse_str函数使用示例
ThinkPHP采用<volist>实现三级循环代码实例
destoon实现底部添加你是第几位访问者的方法
destoon实现调用热门关键字的方法
PHP类中的魔术方法(Magic Method)简明总结
PHP的魔术常量__METHOD__简介
php发送get、post请求的6种方法简明总结
php操作redis中的hash和zset类型数据的方法和代码例子
php socket客户端及服务器端应用实例
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
ThinkPHP之getField详解
ThinkPHP的Widget扩展实例
ThinkPHP3.1的Widget新用法
PHP防止post重复提交数据的简单例子
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
smarty模板中使用get、post、request、cookies、session变量的方法
通过curl模拟post和get方式提交的表单类
©2014-2024 dbsqp.com