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中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP源码之explode使用说明
Aug 05 PHP
php旋转图片90度的方法
Nov 07 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
php动态函数调用方法
May 21 PHP
PHP-FPM之Chroot执行环境详解
Aug 03 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
php编程每天必学之验证码
Mar 03 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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-fpm配置详解
2014/02/12 PHP
php二维数组转成字符串示例
2014/02/17 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
jquery对dom的操作常用方法整理
2013/06/25 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
在Python的Django框架中包装视图函数
2015/07/20 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
python构建深度神经网络(续)
2018/03/10 Python
Python读取stdin方法实例
2019/05/24 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
教师节商场活动方案
2014/02/13 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
投诉信格式范文
2015/07/02 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
mysqldump进行数据备份详解
2022/07/15 MySQL