我目前有一个巨大的表单,有超过1000个变量,必须在提交时传递。目前,PHP将其限制为1000个变量,我需要编辑php.ini来解决它。
我知道这是非常糟糕的做法,但有没有办法解决它 - 也许是通过将$ _POST变量拆分成相同的关联数组层次结构中的块,以便我可以在块之间循环并利用它们?
答案 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