PHP web交互
获取表单数据的2种方法:POST GET
# get方式URL传递参数
在URL的地址栏中将会显示“URL+用户传递的参数”
http://url?name1=value1&name2=value2...
URL的长度应限制在1MB字符以内
如果发送的数据量太大,数据将被截断,从而导致意外或失败的处理结果
# PHP参数传递常用的方法有3种
$_POST[]、$_GET[]、$_SESSION[],分别用于获取表单、URL与Session变量的值
# 获取参数值
$_POST["user"]
$_GET["name"]
$_SESSION["user"]
$_REQUEST["变量"] 同时可以获取以上三者的值
# urlencode() 编码
URL编码是一种浏览器用来打包表单输入数据的格式
是对用地址栏传递参数进行的一种编码规则
如在参数中带有空格,则传递参数时就会发生错误,而用URL编码后,空格转换成“%20”,
这样错误就不会发生了,对中文进行编码也是同样的情况,
最主要的一点就是对传递的参数起到了隐藏的作用
PHP中对查询字符串进行URL编码,可以通过urlencode()函数实现,该函数的语法如下
string urlencode(string str)
<?php
echo "urlencode";
$str = "w3cschool你好";
echo '<a href="w3cschool?foo='. urlencode($str). '">';
//<a href="w3cschool?foo=w3cschool%E4%BD%A0%E5%A5%BD">
?>
# 对URL传递的参数进行解码
对于URL传递的参数直接使用$_GET[]方法即可获取。
而对于进行URL加密的查询字符串,
则需要通过urldecode()函数对获取后的字符串进行解码,该函数的语法如下:
string urldecode(string str)
urldecode()函数可将URL编码后的str查询字符串进行解码
<?php
$str = "w3cschool%E4%BD%A0%E5%A5%BD";
// w3cschool你好
echo urldecode($str);
?>
调用urlencode()和rawurlencode()函数需要注意什么
由于在JavaScript中“+”是字符串类型的连接操作符,因此JavaScript在处理URL时无法识别其中的“+”,这时可以调用rawurlencode()函数对其进行处理
# 理解GET和POST的区别
1、POST是向服务器传送数据;GET是从服务器上获取数据 2、POST是通过HTTP POST机制将表单内各个字段与其内容放置在HTML HEADER中一起传送到ACTION属性所指的URL地址,用户看不到这个过程;GET是把参数数据队列添加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到 3、对于GET方式,服务器端用Request.QueryString获取变量的值;对于POST方式,服务器端用Request.Form获取提交的数据 4、POST传送的数据量较大,一般默认为不受限制,理论上IIS4中最大量为80KB、IIS5中最大量为100KB;GET传送的数据量较小,不能大于2KB 5、POST安全性较高;GET安全性非常低,但是执行效率比POST方法好 6、在添加、修改或删除数据时,建议用POST方式;在查询数据时,建议用GET方式 7、对于机密的信息或数据,建议用POST的数据提交方式