浏览器和PHP之间的POST数据被截断

斯科特·T·罗杰斯

我遇到了一个问题,即使用AJAX通过POST发送的大数据集无法传递到$_POSTPHP中变量中。

用户通过网络表单上传Excel / CSV文件,并通过AJAX进行解析。此特定示例具有775个记录,每个记录具有13个字段/元素。添加要提交的其他字段,数据集中的元素少于11,000个。根据我对此主题所做的研究,32位浏览器(例如Firefox,Chrome等)应该能够处理42.9亿个元素,因此我认为数据大小不是问题,尤其是作为响应从文件上传包含所有元素。

仅当提交整个表单以进行验证并将其输入数据库时​​,问题才浮出水面。问题是Firebug和Chrome开发者工具上的控制台都显示了整个数据集已提交:萤火虫输出

var_dump上执行$_POST以下操作:在此处输入图片说明

php.ini已'post_max_size'设置为200M。偶数'upload_max_filesize'设置为100M。我亲自测试过的Firefox 32.0.3和Chrome 37.0.2062.103 m以及UAT测试过的其他旧版本(包括IE 10)都出现了此问题。

AJAX调用为:

new wrapper.ajax('/t1.php', {
    type: 'POST',
    data: data,
    form: $('form[name=oppForm]'),
    success: function (response)
    {
    if (response.result)
    {
        window.location = response.result;
    }
    },
    complete: function ()
    {
    $("#submit").loading('done');
    }
});

PHP是:

<?php
var_dump($_POST);

有什么想法吗?

编辑

与其他开发人员交谈之后,我还检查了输出,php://input发现它的DID包含浏览器正在发送的整个POST数据,但是该数据未正确转换为$ _POST。但是,如果我从发布数据中删除10个键,然后提交765而不是775,它将正常工作。

斯科特·T·罗杰斯

这个问题最终被认为'max_input_vars'将在php.ini文件没有设置足够高的。该值设置为10,000,并且用户正在提交接近11k的数据,因此其中一些数据已被截断。将此值更改为更大可以解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

终端和浏览器之间的PHP结果不同

来自分类Dev

浏览器php形式之间的差异

来自分类Dev

配置Burp Suite以拦截Web浏览器和代理服务器之间的数据

来自分类Dev

PHP中的POST方法无法从移动浏览器将数据发布到数据库

来自分类Dev

浏览器和iOS设备之间的套接字

来自分类Dev

R浏览器和GET / getURL之间的差异

来自分类Dev

标题和Web浏览器之间的空白

来自分类Dev

浏览器和Internet之间的连接是什么?

来自分类Dev

如何使用PHP和Smarty同时获取数据并在浏览器中显示它们?

来自分类Dev

浏览器之间的差异

来自分类Dev

Instagram API json数据通过应用程序被截断,但在浏览器中可以

来自分类Dev

Angular 和浏览器在加载数据方面的限制

来自分类Dev

PHP:处理用户输入到浏览器中的数据

来自分类Dev

PHP-浏览器缓存和身份验证

来自分类Dev

SSL和证书在服务器和浏览器之间如何工作

来自分类Dev

浏览器将边界值截断为整数

来自分类Dev

浏览器之间的标签交易

来自分类Dev

这在浏览器之间返回不同

来自分类Dev

样式CSS在浏览器之间是不同的

来自分类Dev

浏览器之间的标签交易

来自分类Dev

修复浏览器之间的差异

来自分类Dev

服务器和浏览器ASP.NET MVC之间的CultureInfo冲突

来自分类Dev

python tty / terminos和浏览器终端仿真器之间的接口

来自分类Dev

如何在浏览器和移动模拟器之间获取Meteor实时更新?

来自分类Dev

ClojureScript - 浏览器和 rhino repl 之间的控制台和打印

来自分类Dev

Chrome扩展程序提取错误的元数据而没有重新加载整个页面(原始HTML和浏览器的解释之间存在差异)

来自分类Dev

如何使用Qt HTML5应用程序与浏览器之间来回发送数据

来自分类Dev

姜戈;如何在浏览器中表单数据的输出之间插入空格?

来自分类Dev

Google API:浏览器密钥和Android密钥之间的区别?

Related 相关文章

  1. 1

    终端和浏览器之间的PHP结果不同

  2. 2

    浏览器php形式之间的差异

  3. 3

    配置Burp Suite以拦截Web浏览器和代理服务器之间的数据

  4. 4

    PHP中的POST方法无法从移动浏览器将数据发布到数据库

  5. 5

    浏览器和iOS设备之间的套接字

  6. 6

    R浏览器和GET / getURL之间的差异

  7. 7

    标题和Web浏览器之间的空白

  8. 8

    浏览器和Internet之间的连接是什么?

  9. 9

    如何使用PHP和Smarty同时获取数据并在浏览器中显示它们?

  10. 10

    浏览器之间的差异

  11. 11

    Instagram API json数据通过应用程序被截断,但在浏览器中可以

  12. 12

    Angular 和浏览器在加载数据方面的限制

  13. 13

    PHP:处理用户输入到浏览器中的数据

  14. 14

    PHP-浏览器缓存和身份验证

  15. 15

    SSL和证书在服务器和浏览器之间如何工作

  16. 16

    浏览器将边界值截断为整数

  17. 17

    浏览器之间的标签交易

  18. 18

    这在浏览器之间返回不同

  19. 19

    样式CSS在浏览器之间是不同的

  20. 20

    浏览器之间的标签交易

  21. 21

    修复浏览器之间的差异

  22. 22

    服务器和浏览器ASP.NET MVC之间的CultureInfo冲突

  23. 23

    python tty / terminos和浏览器终端仿真器之间的接口

  24. 24

    如何在浏览器和移动模拟器之间获取Meteor实时更新?

  25. 25

    ClojureScript - 浏览器和 rhino repl 之间的控制台和打印

  26. 26

    Chrome扩展程序提取错误的元数据而没有重新加载整个页面(原始HTML和浏览器的解释之间存在差异)

  27. 27

    如何使用Qt HTML5应用程序与浏览器之间来回发送数据

  28. 28

    姜戈;如何在浏览器中表单数据的输出之间插入空格?

  29. 29

    Google API:浏览器密钥和Android密钥之间的区别?

热门标签

归档