PHP表单提交在271个提交变量之后结束


PHP form submit ends after 271 submitted variables

关于提交多个表单,我遇到了一个小问题:

我试图提交更大数量的$_POST-variables,然而,我的服务器端脚本结束(或只是崩溃)后,总共271表单变量,提交。

在本地主机上尝试,一切都很好,没有任何问题。在这里,总共提交了771个post变量。

到目前为止,我也做了一些研究,试图找出我可以改变什么样的变量,以配置更大的数据范围或类似的东西。

这是我的服务器配置:
max_execution_time  30  30
max_input_nesting_level 64  64
max_input_time  60  60
max_input_vars  1000    1000
memory_limit    256M    256M
post_max_size   8M  8M

本地主机配置:

max_execution_time  30  30
max_file_uploads    20  20
max_input_nesting_level 64  64
max_input_time  60  60
max_input_vars  1000    1000
memory_limit    256M    256M
post_max_size   8M  8M

正如你所看到的,它是相同的配置…我也有suhosin -扩展安装在我的服务器上,默认配置。我不熟悉这个扩展,但使用默认值应该有这种影响(我猜:))

Server-PHP Version: 5.3.9
本地:5.3.17

这个问题和这个很相似。

我已经尝试解决这个问题好几个星期了,如果你有任何想法…那就太好了;)

谢谢

更新:

如果我使用这种方法(谢谢):

$pairs = explode("&", file_get_contents("php://input"));
$vars = array();
foreach ($pairs as $pair) {
    $nv = explode("=", $pair);
    $name = urldecode($nv[0]);
    $value = urldecode($nv[1]);
    $vars[$name] = $value;
}
print_r($vars);

我看到我之前显示的所有表单变量和内容。但是,通过使用

直接访问$_POST变量
isset($_POST['LanguageContentForm']

并将其保存到变量中不起作用。:/

如果您检查phpinfo(),您可以看到suhosin.post的一个变量。每台机器上的Max_vars

你应该可以在。htaccess中这样修改它:

php_value suhosin.post.max_vars 1000
php_value suhosin.request.max_vars 1000

更新

也许这个也是:

suhosin.request.max_varname_length
Type: Integer
Default: 64

定义可以通过COOKIE、URL或POST请求注册的变量的最大名称长度(不包括可能的数组索引)。