两种HTTP方法服务器传送表单数据:GET和POST的区别

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 方式提交表单数据,服务器端用 $_GET[‘name’] 获取变量的值,对于 POST 方式提交表单数据,服务器端用 $_POST[‘name’] 获取提交的数据,当然,两者都可以通过 $_REQUEST[‘name’] 获得表单数据。对于 REQUEST 方式提交表单数据,服务器端用 $_REQUEST[‘name’] 获取变量的值,但这种方式很少用。

4.                 GET 传送的数据量较小,不能大于 2KB POST 传送的数据量较大,一般被默认为不受限制。但理论上,一般认为不能超过 100KB

5.                 GET 安全性非常低, POST 安全性较高。

6.                 GET表单值可以通过_GET获取;但通过actionurl设置的参数总是获取不到的,<form method="get" action="a.asp?b=b"><form method="get"action="a.asp">是一样的,也就是说,在这种情况下,GET方式会忽略action页面后边带的参数列表。POST表单值可以通过_POST获取;但通过actionurl参数设置的参数则可以不能通过_POST获取到。action=test.php?id=1这种就是GET方式传值,可以用$_REQUEST$_GET接受传值,但不能用POST方式获取到值,即使表单是POST方式提交。所在,在提交表单时,如果action中同时有参数,最好只能通过POST表单方式,对于表单内数据,直接通过POST获取,对于action中参数,童工GET获取。

在做数据查询时,建议用 GET 方式,而在做数据添加、修改或删除时,建议用 POST 方式。

request 是先读取 get 再读 post 的, 同时存在, 即覆盖掉前面的变量。

经典实例:

<?php
echo "get\n";
print_r($_GET);
echo "post\n";
print_r($_POST);
echo "request\n";
print_r($_REQUEST);
?>

<form method=post action='?a=1&b=2'>

<input type=text name=a value='a'>

<input type=text name=b value='b'>

<input type=submit value=test>

</form>

 

输出结果:

get

Array

(

  [a] => 1

  [b] => 2

)

post

Array

(

  [a] => a

  [b] => b

)

request

Array

(

  [a] => a

  [b] => b

)

 

其实,在 php 配置文件 php.ini 中有一个设置项: variables_order = "GPCS" GPCS 分别是

GET POST Cookie Server 的首字母缩写, variables_order = "GPCS" 含义是 php 文件中变量的解析顺序是

GET POST Cookie Server
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值