1

在我的一个客户端服务器上,我创建了一个可能有多达 800 个输入字段的表单。但是在提交后,第 200 个之后的所有输入都丢失了。我检查了 max_input_vars 并将其设置为 1000。而 max_execution_time 和 max_input_time 设置为 60。我创建了一个您可以在此处找到的测试文件,删除了 url,该文件创建了 1000 个输入字段,并在提交时打印 POST 数据。表单还可以,但是这个表单还显示输入 #0 以输入 #199 作为提交后的 POST 数据。

没有机会,

  • 以 url 编码作为输入的错误是简单的整数
  • 命名错误,因为它是一个数组

php 信息在这里可用:url 已删除

测试文件的代码(test.php):

<?php
        if($_SERVER['REQUEST_METHOD']=='POST') {
        var_dump($_POST);
    }     

?>

<form action="" method="post">
<?php
    for($i=0;$i<1000;$i++) {
        echo "<input name='in[]' type='text' value='$i' />";
    }
?>
<input type="submit" value="submit" />
</form>

谢谢!

4

2 回答 2

1

在 php.ini 中更改以下设置:

suhosin.post.max_vars 200 200

suhosin.request.max_vars 200 200

Suhosin 是一个用于 PHP 安装的高级保护系统。

更改这些可以通过在应用程序的某处执行来完成:

ini_set('suhosin.request.max_vars', 1000)

ini_set('suhosin.post.max_vars', 1000)

于 2013-06-05T08:38:07.697 回答
-2

检查你的 php.ini 文件中的 post_max_size 并尝试增加它

如果您无权访问 php.ini,请尝试ini_set("post_max_size", "100M");默认为 8MB

于 2013-06-05T08:40:09.203 回答