POST 数据被缩短
Posted
技术标签:
【中文标题】POST 数据被缩短【英文标题】:POST data being cut short 【发布时间】:2015-08-15 05:54:07 【问题描述】:似乎当我 .post() 一个大数组时,很多信息都被删除了。在下面的代码 sn -p 中,第一个 .html() 显示了所有数组数据,而 php 的返回结果只显示了一部分数据。
$('.inner').html(JSON.stringify(dbData));
$.post( "test.php", 'filename' : filename, 'dbData' : dbData, function(result)
$('.inner').html(result);
);
PHP:
ini_set('display_errors', 'On');
$filename = $_POST['filename'];
$dbData = $_POST['dbData'];
$file = $myfile = fopen($filename, 'w');
echo json_encode($dbData);
php.ini 的 post_max_size = 8M,而我发送的数据远小于 8M。
编辑:数组中的数据似乎在某个点后被切断。没有错误。
【问题讨论】:
这可能是因为您的 php.ini 文件中的数据大于post_max_size
。您还可以检查您的 max_upload_size
配置。另一种方法是检查错误日志,看看是否可以从那里发现问题。此外,请确保您正在查看正确的 php.ini
文件(您可能有多个文件)。您还应该注意到,在您修改 php.ini
中的任何设置后,您需要重新启动网络服务器才能使更改生效。
发帖时产生的错误是什么?您无需检查这些 POST 元素是否存在。 $filename = isset($_POST['filename'])?$_POST['filename']:""; $dbData = isset($_POST['dbData'])?$_POST['dbData']:""; if(!empty($filename) && !empty($dbData)) ...
没有错误,只是缺少数组的整个值,
@FuzzyStatic,截止后的下两个字符是什么?数据通过的长度是多少?
【参考方案1】:
尝试增加max_input_vars
的值。我相信默认是 1000。
我曾遇到过几次这样的问题,即为数据库表中的每一行生成一个包含一个或多个字段的表单,当它增长到数百行时,后面的表单字段就会被砍掉。
虽然您似乎只为此使用了一个 POST var $_POST['dbData']
,但如果 AJAX 请求将 dbData 的每个元素作为单独的 &dbData[]=...
参数发送,那将被计算多次。
【讨论】:
非常感谢!这解决了我的问题!以上是关于POST 数据被缩短的主要内容,如果未能解决你的问题,请参考以下文章