请详细解说下php关于post传值和get传值的内容,区别,安全性,大小等 。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安全性较高 。
求php怎么实现web端上传超大文件加大PHP上传文件大小的限制,是通过修改PHP.INI文件来实现,但是这个支持是有限度的,因为WEB协议本为下载而生,超大文件的上传是FTP的专利 。
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的 。
1.file_uploads=on/off
是否允许通过http方式上传文件
2.max_execution_time=30
允许脚本最大执行时间 , 超过这个时间就会报错
3.memory_limit=50M
设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了
--enable-memory-limit标志的情况下才生效
4.upload_max_filesize=20M
允许上传文件的最大大小,此指令必须小于post_max_size
5.upload_tmp_dir
上传文件临时存放目录
6.post_max_size=30M
允许post方式可以接受最大大小
$_FILES['myFile']['name']客户端上次文件的原始名称 。
$_FILES['myFile']['type']文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif" 。
$_FILES['myFile']['size']已上传文件的大小,单位为字节 。
$_FILES['myFile']['tmp_name']文件被上传后在服务端储存的临时文件名,一般是系统默认 。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的 。
$_FILES['myFile']['error']和该文件上传相关的状态码 。['error'] 是在 PHP 4.2.0 版本中增加的 。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功 。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值 。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值 。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传 。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传 。
值:5; 上传文件大小为0.
文件被上传结束后 , 默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除 。
也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除 。
附:修改PHP上传文件大小限制的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小 。此设定也影响到文件上传 。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小 。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
如何设置php上传文件大小限制修改PHP上传文件大小限制phppost数据多大的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时phppost数据多大我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小 。此设定也影响到文件上传 。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改phppost数据多大了第二步.但上传文件时最大仍然为 8M.
为什么呢.phppost数据多大我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小 。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.
php检测上传文件大小的问题在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:
1、php.ini:upload_max_filesize 所上传的文件的最大大小 。默认值2M 。
2、php.ini:memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值8M 。如果不需要任何内存上的限制,必须将其设为 -1 。如果内存不够 , 则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
3、php.ini:post_max_size 设定POST数据所允许的最大大小 。此设定也影响到文件上传 。要上传大文件,该值必须大于 upload_max_filesize 。
4、php.ini:max_execution_time = 30 ; Maximum execution time of each script, in seconds
5、php.ini:max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
6、如果用到mysql的BLOB进行二进制文件存储,则需要设置my.ini:max_allowed_packet=xxM
7、httpd.conf
在 Apache 里面有一个选项是 LimitRequestBody,这个选项可以限制用户送出的 HTTP 请求内容 。这个选项可以在 .htaccess 或 httpd.conf 里使用,而如果在 httpd.conf 内使用,分别可以用在 virtualhost 或目录属性设定 。而 LimitRequestBody 的设定值是介乎 0 (无限制) 至 2147483647 (2GB) 。
例如要在目录 D:/AppServ/www 设定上传限制为 100K,可以在 .htaccess 或 httpd.conf 加入以下语句:
LimitRequestBody 1024000000
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
LimitRequestBody 1024000000Options Indexes FollowSymLinks MultiViews ExecCGIAllowOverride AllOrder allow,denyAllow from all
如果透过 .htaccess 设定,储存档案后会立即生效;如透过 httpd.conf 设定 , 须要重新启动 Apache 。
PHP关于文件上传部分,特别提到表单隐藏域:MAX_FILE_SIZE , 意思是接收文件的最大尺寸 。文档中给出的例子如下:
form enctype="multipart/form-data" action="_URL_" method="POST"
input type="hidden" name="MAX_FILE_SIZE" value="https://www.04ip.com/post/30000"
Send this file: input name="userfile" type="file"
input type="submit" value="https://www.04ip.com/post/Send File"
form
Send this file:
这里设置MAX_FILE_SIZE = 30000,期待一种可能,使得浏览器在传送文件之前能够依此作出预先判断,如果文件尺寸大于30000字节,则不执行实际的POST动作 。也就是不往服务器发送文件内容,而是直接在客户端提醒用户“你试图上传的文件超过30000字节” 。
这的确是一个非常棒的主张,但在现实中却暂时无法实现 。不是因为这个限制可以“被简单地绕过” , 而是IE和FireFox这两个主流浏览器都不支持这个特性 。PHP的这个建议尚未被采纳 。
MAX_FILE_SIZE还有一个用?。汉筇≒HP会判断接收到的文件大小是否大于这个值 , 如果超出,$_FILES['thisfile']['error']会被设置为UPLOAD_ERR_FORM_SIZE(2),同时放弃保存临时文件,将$_FILES['thisfile']['size']置0 。
这个例子,没问题 , 表现正常,当我试图上传一个40多K的文件时,PHP程序报告“文件超过MAX_FILE_SIZE” 。
但是 , 如果我们将表单中的MAX_FILE_SIZE从30000减少到1000,情形又如何呢?
上传800字节的文件 , 正常;
上传40K的文件,PHP报告文件过大,也正常;
上传3000个字节的文件,PHP未报告错误 , 它成功保存了文件!出乎意料!
问题就出在main/rfc1867.c中判断文件是否超长的这部分代码上 。php每次从buffer中读取FILLUNIT字节长度的内容后,首先判断“已经读到的内容长度(total_bytes)”是否大于MAX_FILE_SIZE , 然后再增加“已经读到的内容长度(total_bytes)” 。这样一来,和预计的结果之间至多会有FILLUNIT字节的误差,而FILLUNIT=1024*5=5K 。(点击bug了解详细内容)
这就是说,当MAX_FILE_SIZE5K时,上传一个大于MAX_FILE_SIZE , 但是小于5K的文件是没有问题的 。
当然,因为这个设置很容易被绕过 , 所以服务器端编程不应当依赖于MAX_FILE_SIZE 。而且,5K到底是个很小的数值,对大多数上传文件的表单来说没有影响 。
PHP中post_max_size,upload_max_filesize, MAX_FILE_SIZE的设置,和客户端上传给服务器端的流量大小无关 。
Apache服务器从客户端接收长度不超过LimitRequestBody字节数的请求,然后传送给php模块,php模块再决定是否保存成临时文件 , 设置$_FILES全局变量,移交给script进一步处理 。
这个Apache的LimitRequestBody选项缺省值=0 , 允许Request body的最大字节数是2G(LinuxApache)
最后还要注意的是:
html本身能够post数据也是有限制的,不能超过2G 。
FTP客户端有文件偏移指针的2GB边界限制 , 未使用特殊编译flag编译的ftp服务器端或者客户端,无论在什么FS中都不支持大于2GB的文件 。不知道PHP会不会也有这种情况 。
GET和POST可传递的值到底有多大get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系 。很多文章都说GET方式提交的数据最多只能是1024字节,而实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制 。这个限制是特定的浏览器及服务器对它的限制 。IE对URL长度的限制是2083字节(2K 35字节) 。对于其他浏览器,如FireFox,Netscape等,则没有长度限制 , 这个时候其限制取决于服务器的操作系统 。即如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求 。
post 理论上讲是没有大小限制的 , HTTP协议规范也没有进行大小限制,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小 。因为我们一般post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量限制 , 但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较大的文件到服务器时候 , 可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定 , 一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值 。这就很明白的说明了这个问题了 。
web编程中post方式提交数据时 , 数据流有没有最长限制?对于GET方法传递,IE是有限制的,最大2083字节 。其他浏览器没限制 。
对于POST传递数据 , 理论上没有大小限制的,HTTP协议规范也没有进行大小限制 。但是受服务器端应用程序处理能力和服务器设置限制 。
IIS 6.0默认ASPPOST数据量最大为200KB,每个表单域限制是100KB 。默认上传文件的最大大小是4MB 。默认最大请求头是16KB 。而APAche环境下配置的PHP环境默认最大POST值为80M 。
【phppost数据多大 php写post接口】phppost数据多大的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php写post接口、phppost数据多大的信息别忘了在本站进行查找喔 。
推荐阅读
- php分页数据怎么提交,php分页数据怎么提交到微信
- chatgpt原神梗,原神的梗
- 商场店长如何做营销,商场店长如何做营销策划
- php数据库图片排列代码 php数据库图片的路径
- windows7安装net4.7,windows7安装net framework 35
- erp系统采购订单怎么删除,erp采购入库单怎么删除
- 大话技巧哥直播间,大话主播 挣钱不
- mysql语法错误怎么查 mysql语法总结
- gis数据合理化管理方案,gis的数据管理思路