当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP form 表单传参明细研究

PHP
php 清除网页病毒的方法
php 远程关机操作的代码
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
PHP 出现乱码和Sessions验证问题的解决方法!
php2html php生成静态页函数
中英文字符串翻转函数
php escape URL编码
PHP Google的translate API代码
php 文件状态缓存带来的问题
linux下 C语言对 php 扩展
php mssql 数据库分页SQL语句
php IP及IP段进行访问限制的代码
PHP 采集程序 常用函数
php 设计模式之 单例模式
php 设计模式之 工厂模式
php xml-rpc远程调用
php 获取完整url地址
PHP MSSQL 存储过程的方法
PDP Document 代码注释规范
PHP HTML代码串截取代码

PHP form 表单传参明细研究


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 133 ::
收藏到网摘: n/a

最近一段时间一直在做基于uchome的二次开发网站,因uchome中的很多跳转都是通过参数do来控制的,一直对这种机制不是十分的明细,总有一种雾里看花的感觉。 为什么呢?因为表单的处理有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参数设置