发布数组限制?

时间:2015-09-23 07:27:44

标签: php html

我在表格输入中发布很多行数据时遇到问题,我只看到500行。

这里是我的详细代码:

<?php
if($_POST){
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>

<form method="post" enctype="multipart/form-data" >
    <table>
        <tr>
            <td>Value</td>
            <td>Name</td>
        </tr>
    <?php for($i=1;$i<=1000;$i++){?>
        <tr>
            <td><input type="input" name="attributes[<?= $i ?>][value]" value="<?= $i ?>" /></td>
            <td><input type="input" name="attributes[<?= $i ?>][name]" value="<?= 'name'. $i ?>" /></td>
        </tr>
    <?php } ?>

    </table>
<input type="submit"/>
</form>

4 个答案:

答案 0 :(得分:7)

PHP引入了max_input_vars配置选项,默认值为1000.查看PHP手册的Runtime Configuration部分。

可以通过更新服务器的php.ini,添加.htaccess文件或在httpd.conf中添加一行来更改该值。

答案 1 :(得分:1)

尝试更改max_input_vars。更多信息: PHP max_input_vars and big forms.

答案 2 :(得分:1)

Rutunj sheladiya告诉你关于max_input_vars限制的所有内容,这是你的主要问题。

我的解决方案是对数组进行json_encode,以便只发送一个编码的字符串。然后在dest服务器中,你必须json_decode数组。

我认为这是一个干净的解决方案,因为它可能是一个巨大的阵列,你无法知道它的大小。

现在,如果json编码字符串的大小高于您配置的值,则仅限于max_post_size。

问候。

答案 3 :(得分:0)

可以使用max_input_vars(默认为1000)来识别限制。

如果您有多个索引未知的数组,则必须在 php.ini 文件中更改max_input_vars