За последние 24 часа нас посетили 16204 программиста и 1668 роботов. Сейчас ищут 909 программистов ...

Максимальное кол-во данных передаваемых POST-ом

Тема в разделе "PHP для новичков", создана пользователем Человек, 3 сен 2008.

  1. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Вопрос: скалько масимально input-ов можно передать методом POST? Существует ли ограничение, на обьем передаваемых данных.

    Причина вопроса: Неодходимо создать табель отработанных сотрудниками часов. Для каждого дня, каждого сотрудника отдельное поле ввода. Создал. В результате после определенного input-а данные перестают передаваться.
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    post_max_size по умолчанию 8Мб
    сомневаюсь, что вы со страницы передаёте иак много.
    Так что
     
  4. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    А по кол-ву ячеек ограничения нет?
     
  5. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Дело в том, что разрабатывал я на локальной машине, все работало нормально. Установил на сервер, гдето после 200-й ячейки перестает воспринимать данные

    Создание табеля.

    Код (Text):
    1. <?php
    2.  
    3.   $db = db_connect();
    4.   $res = $db->query("select members.name,members.initials,workers.worker_id from members, workers
    5.                      where members.member_id=workers.member_id and insp_code='".$insp_code."' order by name");
    6.   $rows = $res -> num_rows;
    7.   $date_res=$db->query("select date_begin, date_end from inspections where insp_code='".$insp_code."'");
    8.   $date=$date_res->fetch_assoc();
    9.   $d_b=$date['date_begin'];
    10.   $d_e=$date['date_end'];
    11.   if ($d_e=='0000-00-00') $d_e=date("Y-m-d");
    12.   echo $d_b." end:".$d_e."<br>";
    13.   $ldb=$db->query("select datediff('".$d_e."','".$d_b."')");
    14.   $long=$ldb->fetch_array();
    15.   echo $long[0];
    16.   echo "<form name='Tabel' action='add_tabel.php?insp_code=".$insp_code."' method='POST'>";
    17.   if ($rows)
    18.   {
    19.   echo "<DIV>";
    20.   echo "<table align='center' border='1' width='100%' valign='midle' >";
    21.   echo "<TR>";
    22.  
    23.   echo "<TD align='center'>Èíñïåêòîð</TD>";
    24.     for ($j=0; $j<$long[0]; $j++)
    25.         {
    26.          $day_a=$db->query("select date_format(adddate('".$d_b."',interval ".$j." day), '%d.%m')");
    27.          $day_b=$day_a->fetch_array();
    28.          $day=$day_b[0];
    29.          echo "<TD class='canv'>".$day."</TD>";
    30.         }
    31.   echo "</TR>";
    32.   for ($i = 0; $i < $rows; $i++ )
    33.      {
    34.        echo "<TR>";
    35.        $row=$res->fetch_assoc();
    36.        echo "<TD align='center'> <FONT size='1'>".$row['name']." ".$row['initials']."</FONT> </TD>";
    37.        for ($j=0; $j<$long[0]; $j++)
    38.          {
    39.           $day_a=$db->query("select date_format(adddate('".$d_b."',interval ".$j." day), '%Y-%m-%d')");
    40.           $day_b=$day_a->fetch_array();
    41.           $day_for_db=$day_b[0];
    42.           $input_name=$day_for_db."_".$row['worker_id'];
    43.           $vala=$db->query("select houers from ".$insp_code."_workers
    44.                             where workday='".$day_for_db."' and worker_id=".$row['worker_id']);
    45.           if ($vala->num_rows)
    46.             {
    47.              $x1=$vala->fetch_assoc();
    48.              $x2=$x1['houers'];
    49.             }
    50.           else $x2='';
    51.           echo "<TD>";
    52.           echo "<input name='".$input_name."' type='text' value='".$x2."' class='canv2' MAXLENGTH='2'>";
    53.           echo "</TD>";
    54.          }
    55.          echo "<TD>";
    56.          echo "<input name='".$input_name."' type='text'  class='canv3' MAXLENGTH='7'>";
    57.          echo "</TD>";
    58.        echo "</TR>";
    59.      }
    60.  
    61.   echo "</table>";
    62.   }
    63.   else
    64.   echo "Íåò èíñïåêòîðîâ íà èíñïåêèè<br>";
    65.   echo "</DIV><br>";
    66.   echo "<input type='submit' name='only_tab' value='Äîáàâèòü èçìåíåíèÿ â òàáåëü'>";
    67.   $result = $db->query("select member_id,name,initials from members order by name");
    68.   echo "<select name='member_id_plus' align='left'>";
    69.   $rows = $result -> num_rows;
    70.   for ($i = 0; $i < $rows; $i++ )
    71.      {
    72.        $row=$result->fetch_assoc();
    73.        echo "<option value = ".$row['member_id'].">".$row['name']." ".$row['initials']."</option>";
    74.      }
    75.   echo "</select>";
    76.   echo "<br>";
    77.   echo "<input type='submit' name='add_insp' value='Äîáàâèòü'>";
    78.   if ($ok)
    79.   if ($ok==2) echo '<br>Íåâîçìîæíî äîáàâèòü èíñïåêòîðà'; else echo '<br>Èíñïåêòîð äîáàâëåí';
    80.   echo "</form>";
    81. ?>
    Считывание и обновления в БД.

    Код (Text):
    1.   for ($i=0; $i<$rows; $i++)
    2.    {
    3.     $row=$res->fetch_assoc();
    4.     for ($j=0; $j<=$long[0]; $j++)
    5.       {
    6.        $day_a=$db->query("select date_format(adddate('".$d_b."',interval ".$j." day), '%Y-%m-%d')");
    7.        $day_b=$day_a->fetch_array();
    8.        $daySet=$day_b[0];
    9.        $output_name=$daySet."_".$row['worker_id'];
    10.        $time=$_POST[$output_name];
    11.  
    12.        if ($j==0||substr($daySet,8,2)=='26')
    13.            {
    14.  
    15.             $x=$db->query("select * from sum_houers
    16.                            where worker_id=".$row['worker_id']."
    17.                            and month ='".Month($daySet)."'");
    18.             if ($x->num_rows)
    19.              {
    20.              }
    21.             else
    22.              {
    23.               $x=$db->query("insert into sum_houers (worker_id,member_id,month)
    24.                              values (".$row['worker_id'].",
    25.                              (select member_id from workers
    26.                              where worker_id=".$row['worker_id']."), '".Month($daySet)."')");
    27.              }
    28.             $mem=$db->query("select member_id from workers
    29.                              where worker_id='".$row['worker_id']."'");
    30.             $mema=$mem->fetch_assoc();
    31.             $mem=$mema['member_id'];
    32.             $x=$db->query("select * from month_wages
    33.                            where month ='".Month($daySet)."'
    34.                            and member_id=".$mem);
    35.  
    36.             if (!$x->num_rows)
    37.              {
    38.                $db->query("insert into month_wages (member_id, month, protocol_pay, tax_pay)
    39.                            values (".$mem.", '".Month($daySet)."',
    40.                             (select pay from members where member_id =".$mem."),
    41.                             (select tax_pay from members where member_id =".$mem.") )");
    42.              }
    43.  
    44.            }
    45.  
    46.        if ($_POST[$output_name])
    47.          {
    48.           $izm=true;
    49.           $x=$db->query("select houers from ".$insp_code."_workers
    50.                          where workday='".$daySet."'
    51.                          and worker_id=".$row['worker_id']);
    52.           if ($x->num_rows)
    53.             {
    54.              $old_time_arr=$x->fetch_array();
    55.              $db->query("update sum_houers
    56.                          set sum=sum-".$old_time_arr[0]."+".$time."
    57.                          where worker_id='".$row['worker_id']."'
    58.                          and month='".Month($daySet)."'");
    59.              $db->query("update ".$insp_code."_workers
    60.                          set houers='".$time."' where workday='".$daySet."'
    61.                          and worker_id='".$row['worker_id']."'");
    62.             }
    63.           else
    64.             {
    65.              $db->query("update sum_houers
    66.                          set sum=sum+".$time."
    67.                          where worker_id='".$row['worker_id']."'
    68.                          and month='".Month($daySet)."'");
    69.              $db->query("insert into ".$insp_code."_workers
    70.                          set houers='".$time."', workday='".$daySet."',
    71.                          worker_id='".$row['worker_id']."'");
    72.             }
    73.          }
    74.          else
    75.           {
    76.            $x=$db->query("select houers from ".$insp_code."_workers where workday='".$daySet."' and worker_id=".$row['worker_id']);
    77.            if ($x->num_rows)
    78.             {
    79.              $izm=true;
    80.              $old_time_arr=$x->fetch_array();
    81.              $db->query("update sum_houers
    82.                          set sum=sum-".$old_time_arr[0]."
    83.                          where worker_id='".$row['worker_id']."'
    84.                          and month='".Month($daySet)."'");
    85.              $db->query("delete from ".$insp_code."_workers
    86.                          where workday='".$daySet."'
    87.                          and worker_id='".$row['worker_id']."'");
    88.             }
    89.           }
    90.       }
    91.    }
    92. ?>
     
  6. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Прошу прощения за кучу незакоментированного кода, но вот так тоже не работает. Выводит только 200 ячеек.

    Код (Text):
    1. <form name="FormName" action="2.php" method="post">
    2. <?php
    3.   for ($i=1; $i<1000; $i++)
    4.   {
    5.    echo "<br>".$i."<input name='".$i."' type='text' value='".$i."'>";
    6.     }
    7. ?>
    8. <input type="submit" value="Send">
    9. </form>
    Код (Text):
    1. <?php
    2.  
    3.    for ($i=1; $i<1000; $i++)
    4.   {
    5.    echo "<br>".$_POST[$i];
    6.   }
    7.  
    8. ?>
     
  7. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Человек
    возможно в каком нибудь браузере и есть :)
     
  8. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Человек

    есть ограничения только на размер post-запроса.
     
  9. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    это то которое 8М по умолчанию? Тогда в чем же дело? 8М я явно не перадаю...

    Проверил. post_max_size 10M на сервере стоит. А на лок.машине 8М