请详细解说下php关于post传值和get传值的内容,区别,安全性,大小等。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请详细解说下php关于post传值和get传值的内容,区别,安全性,大小等。相关的知识,希望对你有一定的参考价值。

一些基础的我也懂,毕竟也编了一年的php,只是关于post和get两者还不是很明白其机理,只知道一个是表单加载到http头里面,另一个是通过地址传送,想知道post可否直接加载到http头里面。做人一直很慷慨,只要答案满意还有追加分,求高手!!!!
大神,post传值是不是一定是表单方式,我现在编的一个东西用户向服务器传的值不是他自己填的,而是用之前通过数据库计算出来的,有余这个计算过程比较麻烦,而且数据变量较大,不适合使用session,cookie方式,也不适合get方式,现在想用post传值,您看看行不行,或者有其他的好方法?必加分

参考技术A Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节。一般来说,我们用POST传值作为首选,这样做较为安全。

  PHP中$_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安全性较高。追问

大神,post传值是不是一定是表单方式,我现在编的一个东西用户向服务器传的值不是他自己填的,而是用之前通过数据库计算出来的,有余这个计算过程比较麻烦,而且数据变量较大,不适合使用session,cookie方式,也不适合get方式,现在想用post传值,您看看行不行,或者有其他的好方法?必加分

参考技术B 具体有多大?可以放到form里啊,数据内容放到隐藏域里。你在考虑如何提交表单,用js异步还是什么的。追问

神啊,我理解了,可以放在form的隐藏域里面的,哎呀,我怎么没想到,不过这个方法不能推广哈,我们这个是内部使用,而且数据是直接使用,不经过数据库了,所以没有安全,过滤的问题,否则又是一大推,老麻烦了,js异步还不会,这个是要学的,如果大神能把这个友情点一下就好了。我那个东西大概150k左右,谢谢啦

本回答被提问者采纳

php post方法传值 接收不到

我有两个文件
e02-03-04-01.php
<form name="form1" id="form1" action="./e02-03-04-02.php" method="post">
<table>
<tr>
<td>
<input type="text" id="testa"/>
</td>
</tr>
</table>
<input type="submit" name="submit" value="送信内容确认"/>

e02-03-04-02.php
<?php
$test1 = $_POST['testa'];

echo "aaaaaaa".$test1."bbbbbb";
?>
第一个文件内容是html,第二个是php。
我想把第一个文件输入的值传到第二个文件中。
可是第二个文件接收不到。很奇怪,网上搜索了半天都试了可是还是不行。
不知道是不是需要引用什么文件来支持post传值。
分不多20分送上。

参考技术A 兄弟,表单传值靠的是name,不是id。你把表单这样写
<input type="text" id="testa" name="testa"/>

参考资料:http://www.everalan.com

本回答被提问者和网友采纳
参考技术B 下面是关于post传递的简单案例:
<?php

@$username = $_POST['name'];
@$usermessage = $_POST['message'];
if(!empty($username) || !empty($usermessage))
echo "您的姓名:".$username.",您的留言内容:".$usermessage;
else
echo '<form action="go.php" method="post">
您的姓名:<input type="text" name="name"><br><br>
留言内容:<input type="text" name="message">
<button>提交</button>
</form>';


看看是否能正常接收,如果不能,请重新安装php环境
参考技术C $_POST 获取的是表单name的值,你写的是id

以上是关于请详细解说下php关于post传值和get传值的内容,区别,安全性,大小等。的主要内容,如果未能解决你的问题,请参考以下文章

php中传值与传引用的区别?

php文件之间传值的三种主流并且常用的方式

关于java中基础数据类型传值和引用类型传值的总结

ASP.net post传值出现错误。

URL传值和form表单提交的区别和原理

php模板技术php是怎么向模板中传值的呢?