КИТА unofficial

Компьютерный => Веб-программирование => Тема начата: BoeserBiber от Сентябрь 03, 2008, 11:20:06



Название: Максимальное кол-во данных передаваемых POST-ом
Отправлено: BoeserBiber от Сентябрь 03, 2008, 11:20:06
Вопрос: скалько масимально input-ов можно передать методом POST? Существует ли ограничение, на обьем передаваемых данных.

Код:
<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>

Код:
<?php 

   
for ($i=1$i<1000$i++) 
  { 
   echo 
"<br>".$_POST[$i]; 
  } 

?>

Выводит только значения первых 200 ячеек


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: Foldor от Сентябрь 04, 2008, 01:09:08
Мы подошли к сути метода POST. А что, если мы в предыдущем примере зададим вместо GET СЛОВО POST И после последнего заголовка (маркера пп) начнем передавать какие-то данные? В этом случае сервер их воспримет и также передаст сценарию. Только нужно не забыть проставить заголовок content-length в соответствии с размером данных, например:
POST /script.cgi HTTP/1.0
Content-length: 5

Test!
Сервер начнет обработку запроса, не дожидаясь передачи данных после маркера конца заголовков. Иными словами, сценарий запустится сразу же после отправки пп, а уж ждать или не ждать, пока придет строка Test! длиной 5 байтов - его дело.
Последнее означает, что сервер никак не интерпретирует POST-данные (точно так же, как он не интерпретирует некоторые заголовки), а пересылает их непосредственно сценарию. Но как же сценарий узнает, когда данные кончаются, т. е. когда ему прекращать чтение информации, поступившей от браузера? В этом ему поможет переменная окружения Content-Length, и именно на нее следует ориентироваться. Чуть позже мы рассмотрим этот механизм подробнее.
Зачем нужен метод POST? В основном для того, чтобы передавать большие объемы данных. Например, при загрузке файлов через Web (см. ниже) или при обработке больших форм. Кроме того, метод POST часто используют для
 эстетических целей: дело в том, что при применении GET, как вы, наверное, уже заметили, URL сценария становится довольно длинным и неизящным, а POST-запрос оставляет URL без изменения.

Отсюда http://it-library.org/articles/?c=2&&a=563

Переменная окружения может быть? Я посмотрю настройки сервака.


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: zer_owlet от Сентябрь 04, 2008, 01:08:53
; Maximum size of POST data that PHP will accept.
post_max_size = 8M

из php.ini


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: BoeserBiber от Сентябрь 04, 2008, 04:05:14
post_max_size 10M стоит. Достаточно...(на локальной машине 8М стоит, и все работает)


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: naxellar от Сентябрь 04, 2008, 05:47:08
Еще на сервере ограничить можно.
Foldor, что-то мне кажется не в тему приведенный тобой текст.


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: zer_owlet от Сентябрь 05, 2008, 01:15:33
Еще на сервере ограничить можно.

дык уже показали параметр, который ограничивает размер и указали где он...
ты просто так повторил сказанное выше или имел в виду что-то кроме настроек пхп?
(Отправлено в: Сентябрь 05, 2008, 03:07:00 )
 кстати, очень странно что выводится только 200... потому что ограничения сервера тут роли не играет имхо... размер то передаваемых данных всего "Content-Length: 7787"...

а где, кстати, этот скрипт проверялся? на локалке или на сервере?


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: naxellar от Сентябрь 05, 2008, 03:25:47
zer_owlet, да кроме настроек PHP. Была у меня фигня такая, вроде бы стоит нормальное ограничение, а сервак ругается на превышенный объем. Оказалось в настройках Apache была директива на этот счет. Об остальных серверах не знаю.


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: zer_owlet от Сентябрь 05, 2008, 03:28:27
zer_owlet, да кроме настроек PHP. Была у меня фигня такая, вроде бы стоит нормальное ограничение, а сервак ругается на превышенный объем. Оказалось в настройках Apache была директива на этот счет. Об остальных серверах не знаю.

ну раз сказал о директиве -- было бы не лишним ее назвать.


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: naxellar от Сентябрь 05, 2008, 03:55:06
LimitRequestBody (http://httpd.apache.org/docs/1.3/mod/core.html#limitrequestbody)
(исправил)


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: zer_owlet от Сентябрь 05, 2008, 03:59:49
подправить бы линку и таки узнать у автора топика где ж тестил то...

а о директиве не знал... сенкс.


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: BoeserBiber от Сентябрь 08, 2008, 12:26:50
да в том то и дело, что на локалке все работало нормально. Поставил на сервак, не пашет. Тогда я этот мелкий код и написал(основной поболее, но сути не меняет). На другой сервак поставил, работает(но он меня не устраивает). Так что я думаю просто сервер поменять,тошо на мои вопросы по этому поводу ноль ответа...


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: Alder от Сентябрь 08, 2008, 02:56:08
BoeserBiber, сервера и там, и там - Apache? Если да - сравнивай конфиги. И конфиги php тоже внимательно изучи.


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: BoeserBiber от Сентябрь 08, 2008, 06:28:37
ну конфиг ПХП это через phpinfo(); я так понял можна глянуть, а апача? потому что се что могло в ПХП повлиять я сверил...


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: BoeserBiber от Сентябрь 08, 2008, 06:39:15
Да...и еще один вопрос...не много из другой темы)

Как включить/выключить вывод сервером сообщений об ошибках?


Название: Re: Максимальное кол-во данных передаваемых POST-ом
Отправлено: Alder от Сентябрь 08, 2008, 06:39:28
а апача?
Ищи httpd.conf. Обычно в /etc/httpd/conf