PHP - 在数组中的第70个变量后丢失

时间:2013-02-19 14:55:04

标签: arrays post php

好吧,我已经花了很长时间才想弄明白这一点。我有一个while循环,从数据库中获取行,并回显每个名称为selected_id[]的输入。在提交时,我使用$ _REQUEST来收集所选的复选框,但由于某种原因,第70个变量之后的所有输入都不会发布。 selected_id[0]selected_id[70]只会像平常一样发布,但selected_id[71]及更高版本不会发布。

为什么我只能$ _REQUEST一个数组到该数组中的第70个变量?

如果我从数据库中删除其中一个条目,那么问题仍会出现在第71个回显的条目或selected_id[70]

我正在使用PHP版本5.3.15并且我的max_input_vars设置为1000.我的max_input_nesting_level设置为64,但我不相信这是导致问题的原因。我的memory_limit设置为20M。

以下是我的大多数代码:

<?php


   if(!empty($_REQUEST[assignedprocess])){

    $selected_id = $_REQUEST[selected_id];
    $howmany = count($selected_id);
    $msgback="(".$howmany.") Entry(ies) updated. <br>";
      echo $msgback; 
   }

?>

<form action="index.php" method="post" name="index">

    <?php

        while($row = mysql_fetch_array($result_groups)){

        echo "<input name="selected_id[]" type="checkbox" value="'.$row[id].'" />";

        }

    ?>
<input type="hidden" name="assignedprocess" value="11">
<input type="submit" name="subs" value="Apply">  
</form>

对不起我的草率代码和糟糕的英语...我非常感谢你能给予的任何帮助,提前谢谢。

2 个答案:

答案 0 :(得分:1)

在php.ini中将php_value post_max_size设置为15M(或更多):

php_value post_max_size 15M

修复代码:(您错过了回音功能)

<form action="index.php" method="post" name="index">

    <?php

        while($row = mysql_fetch_array($result_groups)){
          $id= $row[id];
          echo  "<input name='selected_id[]' type='checkbox' value= $id />";



        }

    ?>
<input type="hidden" name="assignedprocess" value="11">
<input type="submit" name="subs" value="Apply">  
</form>

答案 1 :(得分:0)

基本上你发布的长度大于PHP的配置长度。

如果您使用共享主机,则可以使用.htaccess,如下所示:

#set max post size
php_value post_max_size 20M

否则,如果您拥有自己的服务器,请编辑php.ini

使用的尺寸......最新的,20M是一个很好的尺寸作为首发。