PHP $ _POST函数 与$_GET函数详解
1、get是从服务器上获取数据,post则是向服务器传送数据;
2、get将表单中数据的按照variable=value的 形式,添加到action所指向的url后面,并且两者使用“?”连接,而各个变量之间使用“&”连接,post是将表单中的数据放在form的 数据体中,按照变量和值相对应的方式,传递到action所指向url;
所以从上述也可以得到另外两个结论:
1、get传送的数据量较小,不能大于2kb,这主要是因为受url长度限制。post传送的数据量较大,所以在上传文件只能使用post。一般被默认为不受限制。但理论上,iis4中最大量为80kb,iis5中为100kb;
2、get安全性非常低(因为用户可以通过url看到),post安全性较高(其所有操作对用户来说都是不可见的)。但是执行效率却比post方法好;
3、get限制form表单的数据集的值必须为ascii字符;而post支持整个iso10646字符集;cleaning cloth
4、get是form的默认方法;
5、get方式提交来的数据在服务器端用request.querystring()来获取,用post方式提交的数据用request.form()来获取(这一点不是很明确);
建议:
1、如果是包含机密信息的话,建议用post数据提交方式;
2、在做数据查询时,建议用get方式;而在做数据添加、修改或删除时,建议用post方式;
get实例
内置的$ _get函数是用来收集从表单发送一个method="get"的值,信息是一个用get方法的形式发送的.用户可见的(它会在浏览器的地址栏显示),并已对信息发送数量限制。
举个例子:
- <form action="test.php" method="get">
- name: <input type="text" name="username" />
- age: <input type="text" name="age" />
- <input type="submit" value="submit" />
- </form>
当用户点击“提交”按钮,发送到服务器的url可能看起来像这样:
http: //localhost/demo/test.php?username=lily&age=28
在"test.php"文件,现在可以使用$ _get这个函数来收集表单数据(表单字段的名称将自动在$ _get数组的键):
那何时使用 method="get" 呢?
当使用 method="get" 在html表单,所有的变量名和值显示在url中,注意:这个方法不应该被使用在密码或其他敏感信息,但是由于变量在显示网址,是有可能的书签页面,这可以在某些情况下有用,get方法是不适合非常大的变量值,它不应该使用超过2000个字符的值
$_post实例
内置在$ _post功能是用来收集在一个表单 method="post" 值,使用post方法的形式发送的信息用户是看不见的,并已对信息发送量没有限制。但是,对于post方法有一个8 mb max size,默认情况下,可通过设置在php.ini文件中的post_max_size更改.
举个例子:
- <form action="welcome.php" method="post">
- name: <input type="text" name="username" />
- age: <input type="text" name="age" />
- <input type="submit" value="submit" />
- </form>
当用户点击“提交”按钮,发送到服务器的url可能看起来像这样:
http: //localhost/demo/test.php
在"test.php"文件,现在可以使用了$ _post功能,收集表单数据,表单字段的名称将自动在$ _post数组的键:
welcome <?php echo $_post["username"]; ?>!<br />
you are <?php echo $_post["age"]; ?> years old.
那何时使用 method="post" 呢?
使用post方法的形式发送的信息用户是看不见的,并已对信息发送量没有限制,但是由于变量没有在url中显示,这是不可能的书签的页面.
php的$ _request的作用
php的内置函数包含在$ _request中的有两种形式 $ _get,$ _post和$ _cookie,$ _request函数,可用于收集get和post方法发送表单数据.