PHP表单处理-GET与POST区别

PHP表单处理

form表单的提交主要有两种方式:get和post

GET方法接收的特点:所有输入的数据被加载到请求的URL地址后面,数据通过键/值对的方法加载。

GET方法接收的特点:把数据和请求的URL地址放在一起,浏览的结果放在缓存区内。由于GET放在URL后面传递,所以传递的数据大小有限。

实例:next.php?user=admin&pwd=123456

数据传递到next.php页,?表示参数的开始,&分隔不同的参数,+表示空格符。在页面next.php中,用$_GET[]数组形式接收传递的数据。用$_GET[user]接收到admin值,用$GET['pwd']接收到数据123456.

使用POST方法,把表单数据打包放入请求中,服务器必须从输入的文件中读出请求的信息,分析出数据的键值,提取出数据。

用POST发送的数据单独存放在包中,不跟随URL地址,所以允许发送大量数据,但是客户端每次都会向服务器发送请求,不会存放在缓存区内。可以使用$_POST[]接收POST的数据。在URL中,不会显示数据信息。

表单的复选框控件name属性可以设置成一个名字后加[ ]表示是一个数组,提交后可以接收得到相应的选中值。

也可以使用$_REQUEST[]接收传递的值,无论是get方法还是post方法传递的。虽然$_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获取;但通过action的url设置的参数总是获取不到的,<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一样的,也就是说,在这种情况下,GET方式会忽略action页面后边带的参数列表。POST表单值可以通过_POST获取;但通过action的url参数设置的参数则可以不能通过_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。


  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值