好吧,我已经花了很长时间才想弄明白这一点。我有一个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>
对不起我的草率代码和糟糕的英语...我非常感谢你能给予的任何帮助,提前谢谢。
答案 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是一个很好的尺寸作为首发。