转 php中$_request与$_post、$_get的区别

 

 

php中有$_REQUEST与$_POST、$_GET用于接受表单数据,当时他们有何种区别,什么时候用那种最好。

一、$_REQUEST与$_POST、$_GET的区别和特点

$_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过POST和GET方法提交的所有数据都可以通过$_REQUEST数组获得

二、$_POST、$_GET的区别和特点

   1. GET是从服务器上获取数据,POST是向服务器传送数据。
   2. GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
   3. 对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。
   4. GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
   5. GET安全性非常低,POST安全性较高。

举例:mypage?id=1这种就是GET方式传值,可以用$_REQUEST和$_GET接受传值

 

 

-----------------------------------------------------------------------------------------------------------------------------------

HTTP GET 变量:$_GET
注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_GET_VARS。
通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量。
这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_GET; 来访问它,就如同使用 $HTTP_GET_VARS 一样。
$HTTP_GET_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_GET_VARS 和 $_GET 是不同的变量,PHP 处理它们的方式不同)。
如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_GET 和 $HTTP_GET_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。



HTTP POST 变量:$_POST
注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_VARS。
通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_POST; 来访问它,就如同使用 $HTTP_POST_VARS 一样。
$HTTP_POST_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_POST_VARS 和 $_POST 是不同的变量,PHP 处理它们的方式不同)。
如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_POST 和 $HTTP_POST_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量

实际应用:当表单很多时,可能用数组的形式来把值传递过来,再配合一些类来进行操作

查看情况:print_r($_POST);

转自 http://blog.sina.com.cn/s/blog_4b91309b0100ckie.html

posted @ 2017-03-28 09:23  feiyun8616  阅读(272)  评论(0编辑  收藏  举报