博客列表 >$_REQUEST[]、$_POST[]、$_GET[]的区别

$_REQUEST[]、$_POST[]、$_GET[]的区别

书声的博客
书声的博客原创
2018年05月25日 10:05:371113浏览

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接受传值。

补充一点,不要用$_REQUEST来取变量,因为这跟php.ini里的配置有关系

; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right, newer
; values override older values.


variables_order = "EGPCS"如果同一个变量,既存在于get又存在于post,会取得get里的数据,因为我的G在P之前,EGPCS是个顺序,容易造成程序有漏洞



注意事项:
1.不要经常使用$_REQUEST,
2.如果不确定_GET/POST你接收数据时候,可以这样

 

view plain copyif($_SERVER['REQUEST_METHOD’]=="POST"){  
    $echo $_POST['名字'];  
}else if($_SERVER[’ REQUEST_METHOD’]=="GET"){  
    //用 _GET接收.  }

 


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议