Вопрос: скалько масимально input-ов можно передать методом POST? Существует ли ограничение, на обьем передаваемых данных. Причина вопроса: Неодходимо создать табель отработанных сотрудниками часов. Для каждого дня, каждого сотрудника отдельное поле ввода. Создал. В результате после определенного input-а данные перестают передаваться.
Дело в том, что разрабатывал я на локальной машине, все работало нормально. Установил на сервер, гдето после 200-й ячейки перестает воспринимать данные Создание табеля. Код (Text): <?php $db = db_connect(); $res = $db->query("select members.name,members.initials,workers.worker_id from members, workers where members.member_id=workers.member_id and insp_code='".$insp_code."' order by name"); $rows = $res -> num_rows; $date_res=$db->query("select date_begin, date_end from inspections where insp_code='".$insp_code."'"); $date=$date_res->fetch_assoc(); $d_b=$date['date_begin']; $d_e=$date['date_end']; if ($d_e=='0000-00-00') $d_e=date("Y-m-d"); echo $d_b." end:".$d_e."<br>"; $ldb=$db->query("select datediff('".$d_e."','".$d_b."')"); $long=$ldb->fetch_array(); echo $long[0]; echo "<form name='Tabel' action='add_tabel.php?insp_code=".$insp_code."' method='POST'>"; if ($rows) { echo "<DIV>"; echo "<table align='center' border='1' width='100%' valign='midle' >"; echo "<TR>"; echo "<TD align='center'>Èíñïåêòîð</TD>"; for ($j=0; $j<$long[0]; $j++) { $day_a=$db->query("select date_format(adddate('".$d_b."',interval ".$j." day), '%d.%m')"); $day_b=$day_a->fetch_array(); $day=$day_b[0]; echo "<TD class='canv'>".$day."</TD>"; } echo "</TR>"; for ($i = 0; $i < $rows; $i++ ) { echo "<TR>"; $row=$res->fetch_assoc(); echo "<TD align='center'> <FONT size='1'>".$row['name']." ".$row['initials']."</FONT> </TD>"; for ($j=0; $j<$long[0]; $j++) { $day_a=$db->query("select date_format(adddate('".$d_b."',interval ".$j." day), '%Y-%m-%d')"); $day_b=$day_a->fetch_array(); $day_for_db=$day_b[0]; $input_name=$day_for_db."_".$row['worker_id']; $vala=$db->query("select houers from ".$insp_code."_workers where workday='".$day_for_db."' and worker_id=".$row['worker_id']); if ($vala->num_rows) { $x1=$vala->fetch_assoc(); $x2=$x1['houers']; } else $x2=''; echo "<TD>"; echo "<input name='".$input_name."' type='text' value='".$x2."' class='canv2' MAXLENGTH='2'>"; echo "</TD>"; } echo "<TD>"; echo "<input name='".$input_name."' type='text' class='canv3' MAXLENGTH='7'>"; echo "</TD>"; echo "</TR>"; } echo "</table>"; } else echo "Íåò èíñïåêòîðîâ íà èíñïåêèè<br>"; echo "</DIV><br>"; echo "<input type='submit' name='only_tab' value='Äîáàâèòü èçìåíåíèÿ â òàáåëü'>"; $result = $db->query("select member_id,name,initials from members order by name"); echo "<select name='member_id_plus' align='left'>"; $rows = $result -> num_rows; for ($i = 0; $i < $rows; $i++ ) { $row=$result->fetch_assoc(); echo "<option value = ".$row['member_id'].">".$row['name']." ".$row['initials']."</option>"; } echo "</select>"; echo "<br>"; echo "<input type='submit' name='add_insp' value='Äîáàâèòü'>"; if ($ok) if ($ok==2) echo '<br>Íåâîçìîæíî äîáàâèòü èíñïåêòîðà'; else echo '<br>Èíñïåêòîð äîáàâëåí'; echo "</form>"; ?> Считывание и обновления в БД. Код (Text): for ($i=0; $i<$rows; $i++) { $row=$res->fetch_assoc(); for ($j=0; $j<=$long[0]; $j++) { $day_a=$db->query("select date_format(adddate('".$d_b."',interval ".$j." day), '%Y-%m-%d')"); $day_b=$day_a->fetch_array(); $daySet=$day_b[0]; $output_name=$daySet."_".$row['worker_id']; $time=$_POST[$output_name]; if ($j==0||substr($daySet,8,2)=='26') { $x=$db->query("select * from sum_houers where worker_id=".$row['worker_id']." and month ='".Month($daySet)."'"); if ($x->num_rows) { } else { $x=$db->query("insert into sum_houers (worker_id,member_id,month) values (".$row['worker_id'].", (select member_id from workers where worker_id=".$row['worker_id']."), '".Month($daySet)."')"); } $mem=$db->query("select member_id from workers where worker_id='".$row['worker_id']."'"); $mema=$mem->fetch_assoc(); $mem=$mema['member_id']; $x=$db->query("select * from month_wages where month ='".Month($daySet)."' and member_id=".$mem); if (!$x->num_rows) { $db->query("insert into month_wages (member_id, month, protocol_pay, tax_pay) values (".$mem.", '".Month($daySet)."', (select pay from members where member_id =".$mem."), (select tax_pay from members where member_id =".$mem.") )"); } } if ($_POST[$output_name]) { $izm=true; $x=$db->query("select houers from ".$insp_code."_workers where workday='".$daySet."' and worker_id=".$row['worker_id']); if ($x->num_rows) { $old_time_arr=$x->fetch_array(); $db->query("update sum_houers set sum=sum-".$old_time_arr[0]."+".$time." where worker_id='".$row['worker_id']."' and month='".Month($daySet)."'"); $db->query("update ".$insp_code."_workers set houers='".$time."' where workday='".$daySet."' and worker_id='".$row['worker_id']."'"); } else { $db->query("update sum_houers set sum=sum+".$time." where worker_id='".$row['worker_id']."' and month='".Month($daySet)."'"); $db->query("insert into ".$insp_code."_workers set houers='".$time."', workday='".$daySet."', worker_id='".$row['worker_id']."'"); } } else { $x=$db->query("select houers from ".$insp_code."_workers where workday='".$daySet."' and worker_id=".$row['worker_id']); if ($x->num_rows) { $izm=true; $old_time_arr=$x->fetch_array(); $db->query("update sum_houers set sum=sum-".$old_time_arr[0]." where worker_id='".$row['worker_id']."' and month='".Month($daySet)."'"); $db->query("delete from ".$insp_code."_workers where workday='".$daySet."' and worker_id='".$row['worker_id']."'"); } } } } ?>
Прошу прощения за кучу незакоментированного кода, но вот так тоже не работает. Выводит только 200 ячеек. Код (Text): <form name="FormName" action="2.php" method="post"> <?php for ($i=1; $i<1000; $i++) { echo "<br>".$i."<input name='".$i."' type='text' value='".$i."'>"; } ?> <input type="submit" value="Send"> </form> Код (Text): <?php for ($i=1; $i<1000; $i++) { echo "<br>".$_POST[$i]; } ?>
это то которое 8М по умолчанию? Тогда в чем же дело? 8М я явно не перадаю... Проверил. post_max_size 10M на сервере стоит. А на лок.машине 8М