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 相关文章推荐
用PHP制作静态网站的模板框架(四)
Oct 09 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
php代码检查代理ip的有效性
Aug 19 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHP isset()与empty()的使用区别详解
Feb 10 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
PHP中的self关键字详解
Jun 23 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
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
PHP实现简单日历类编写
2020/08/28 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
Python标准库之Sys模块使用详解
2015/05/23 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
幼儿园托班开学寄语
2014/01/18 职场文书
遗嘱继承公证书
2014/04/09 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
小人国观后感
2015/06/11 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书