PHP form 表单传参明细研究


Posted in PHP onJuly 17, 2009

为什么呢?因为表单的处理有GET和POST两种,怎么在这两种表单中都要传递一直do参数,而且要在后台通过同样的方式获取就一直是个很困惑的问题,今天经过几个小时的实验终于搞懂了,特发此文。
GET表单:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html;charset=gbk"/> 
    <title>表单使用GET方式传值</title> 
</head> 
<body> 
    <!-- action中的parm参数的值是无法传递到action-get.php的 --> 
    <form action="action-get.php?parm=url-get" method="get"> 
        <p> 
            姓名:<input type="text" name="name" /> 
            <!-- 隐藏变量传值 --> 
            <input type="hidden" name="hkey" value="hvalue" /> 
            <!-- GET表单的隐藏变量传值可以通过$_GET["do"]获取 --> 
            <input type="hidden" name="do" value="index" /> 
            <!-- submit不设置name属性则不会出现在url中 --> 
            <input type="submit" value="提交"/> 
        </p> 
    </form> 
</body> 
</html>

处理GET表单的PHP:
<pre> 
<?php 
    echo "参数 name 的值通过\$_GET获取为 ".$_GET["name"]." ,"; 
    echo "参数 name 的值通过\$_POST获取为 ".$_POST["name"]." ,"; 
    echo "参数 name 的值通过\$_REQUEST获取为 ".$_REQUEST["name"]." .\r\n"; 
    echo "参数 parm 的值通过\$_GET获取为 ".$_GET["parm"]." ,"; 
    echo "参数 parm 的值通过\$_POST获取为 ".$_POST["parm"]." ,"; 
    echo "参数 parm 的值通过\$_REQUEST获取为 ".$_REQUEST["parm"]." .\r\n"; 
    echo "参数 hkey 的值通过\$_GET获取为 ".$_GET["hkey"]." ,"; 
    echo "参数 hkey 的值通过\$_POST获取为 ".$_POST["hkey"]." ,"; 
    echo "参数 hkey 的值通过\$_REQUEST获取为 ".$_REQUEST["hkey"]." .\r\n"; 
    echo "参数 do 的值通过\$_GET获取为 ".$_GET["do"]." ,"; 
    echo "参数 do 的值通过\$_POST获取为 ".$_POST["do"]." ,"; 
    echo "参数 do 的值通过\$_REQUEST获取为 ".$_REQUEST["do"]." .\r\n"; 
?> 
</pre>

处理结果输出:
参数 name 的值通过$_GET获取为 kj ,参数 name 的值通过$_POST获取为 ,参数 name 的值通过$_REQUEST获取为 kj .
参数 parm 的值通过$_GET获取为 ,参数 parm 的值通过$_POST获取为 ,参数 parm 的值通过$_REQUEST获取为 .
参数 hkey 的值通过$_GET获取为 hvalue ,参数 hkey 的值通过$_POST获取为 ,参数 hkey 的值通过$_REQUEST获取为 hvalue .
参数 do 的值通过$_GET获取为 index ,参数 do 的值通过$_POST获取为 ,参数 do 的值通过$_REQUEST获取为 index .
POST 表单:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html;charset=gbk"/> 
    <title>表单使用POST方式传值</title> 
</head> 
<body> 
    <!-- action中的parm和do参数可以在action-post.php中通过$_GET方式获取 --> 
    <form action="action-post.php?parm=url-post&do=index" method="post"> 
        <p> 
            姓名:<input type="text" name="name" /> 
            <!-- 隐藏变量传值 --> 
            <input type="hidden" name="hkey" value="hvalue" /> 
            <input type="submit" value="提交"/> 
        </p> 
    </form> 
</body> 
</html>

处理 POST 表单的PHP:
<pre> 
<?php 
    echo "参数 name 的值通过\$_GET获取为 ".$_GET["name"]." ,"; 
    echo "参数 name 的值通过\$_POST获取为 ".$_POST["name"]." ,"; 
    echo "参数 name 的值通过\$_REQUEST获取为 ".$_REQUEST["name"]." .\r\n"; 
    echo "参数 parm 的值通过\$_GET获取为 ".$_GET["parm"]." ,"; 
    echo "参数 parm 的值通过\$_POST获取为 ".$_POST["parm"]." ,"; 
    echo "参数 parm 的值通过\$_REQUEST获取为 ".$_REQUEST["parm"]." .\r\n"; 
    echo "参数 hkey 的值通过\$_GET获取为 ".$_GET["hkey"]." ,"; 
    echo "参数 hkey 的值通过\$_POST获取为 ".$_POST["hkey"]." ,"; 
    echo "参数 hkey 的值通过\$_REQUEST获取为 ".$_REQUEST["hkey"]." .\r\n"; 
    echo "参数 do 的值通过\$_GET获取为 ".$_GET["do"]." ,"; 
    echo "参数 do 的值通过\$_POST获取为 ".$_POST["do"]." ,"; 
    echo "参数 do 的值通过\$_REQUEST获取为 ".$_REQUEST["do"]." .\r\n"; 
?> 
</pre>

处理结果输出:
参数 name 的值通过$_GET获取为 ,参数 name 的值通过$_POST获取为 zkj ,参数 name 的值通过$_REQUEST获取为 zkj .
参数 parm 的值通过$_GET获取为 url-post ,参数 parm 的值通过$_POST获取为 ,参数 parm 的值通过$_REQUEST获取为 url-post .
参数 hkey 的值通过$_GET获取为 ,参数 hkey 的值通过$_POST获取为 hvalue ,参数 hkey 的值通过$_REQUEST获取为 hvalue .
参数 do 的值通过$_GET获取为 index ,参数 do 的值通过$_POST获取为 ,参数 do 的值通过$_REQUEST获取为 index .
结论:

GET表单值可以通过_GET获取;但通过action的url参数设置的参数总是获取不到的

POST表单值可以通过_POST获取;但通过action的url参数设置的参数则可以通过_GET获取到

同一变量都可以通过_GET获取,但在GET表单中通过隐藏变量设置,在POST表单中则通过action的url参数设置

PHP 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
一个程序下载的管理程序(二)
Oct 09 PHP
php自动跳转中英文页面
Jul 29 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 PHP
php测试kafka项目示例
Feb 06 PHP
php与php MySQL 之间的关系
Jul 17 #PHP
php 图片上传类代码
Jul 17 #PHP
PHP源码之 ext/mysql扩展部分
Jul 17 #PHP
php 小乘法表实现代码
Jul 16 #PHP
php at(@)符号的用法简介
Jul 11 #PHP
php str_pad 函数用法简介
Jul 11 #PHP
php strlen mb_strlen计算中英文混排字符串长度
Jul 10 #PHP
You might like
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
php中session与cookie的比较
2015/01/27 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
javascript 写的一个简单的timer
2009/07/30 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
教师自荐信范文
2013/12/09 职场文书
车间操作工岗位职责
2013/12/19 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
干部对照检查材料范文
2014/08/26 职场文书
共青团员自我评价范文
2014/09/14 职场文书
公司合并协议书范本
2014/09/30 职场文书
医院合作意向书范本
2015/05/08 职场文书
大国崛起观后感
2015/06/02 职场文书
长征观后感
2015/06/09 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript