将$ _POST拆分为Chunks

时间:2016-11-16 20:22:59

标签: php arrays variables post split

我目前有一个巨大的表单,有超过1000个变量,必须在提交时传递。目前,PHP将其限制为1000个变量,我需要编辑php.ini来解决它。

我知道这是非常糟糕的做法,但有没有办法解决它 - 也许是通过将$ _POST变量拆分成相同的关联数组层次结构中的块,以便我可以在块之间循环并利用它们?

2 个答案:

答案 0 :(得分:3)

使用Javascript将所有输入组合成单个JSON编码参数。

以下是使用jQuery的方法:

$("#formid").submit() {
    var params = JSON.stringify($(this).serializeArray());
    $(this).find(":input:not(#params)").prop("disabled", true); // prevent submitting the real inputs
    $("<input>", {
        type: 'hidden',
        name: 'params'
        value: params
    }).appendTo(this);
});

在PHP中,您可以这样做:

$_POST = json_decode($_POST['params']);

请注意,serializeArray()编码的参数中不包含按钮。所以,如果PHP做了像

这样的事情
if (isset($_POST['submit']))
它不会工作。您需要明确地将其添加到params,例如

params.submit = "submit";

答案 1 :(得分:0)

php.ini 文件 通过增加max_input_vars的限制 或
您可以通过.htAccess

更改它
php_value max_input_vars 6000
php_value suhosin.post.max_vars 6000
php_value suhosin.request.max_vars 6000