За последние 24 часа нас посетили 51365 программистов и 1758 роботов. Сейчас ищут 953 программиста ...

Ограничение на количество POST переменных

Тема в разделе "Прочие вопросы по PHP", создана пользователем bazhin, 17 авг 2010.

  1. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    Добрый день.

    Проблема в следующем: попался вредный хостер - не позволяет отправить методом POST в одном запросе более 355 переменных (это не ограничение на объем передаваемых данных - post_max_size) - не могу найти что это за ограничение и вообще настройка ли это php или apache. Может кто сталкивался? Подскажите как обойти.


    На серваке:
    - PHP Version 5.2.14
    - System Linux
    - Apache 2.0


    За ранее спасибо
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    bazhin
    ну можно попробовать через какой-нить JSON сереализовать. Но это я только в теории предпологаю. Но обойти можно полюбас.

    Вопрос в другом. Вернее их два.

    Нах вам так много? =) Можно пример?

    И второй: нах вам такой хостер? Если у вас проект вырос до таких сложностей - арендуйте VPSку хотя бы что ли
     
  3. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    igordata

    Так много - мне нафиг не надо :) просто есть такой шоп prestashop, у него есть админка, на одной из страниц админки можно перевести практически весь фронт с одного языка на другой, соответственно количество переменных при этом порядка 2500 (кроме этого хостинга я проверил еще 12!!!!! нигде таких проблем больше нет!!!!)

    Обойти изменением кода можно, но интересно есть ли такая настройка у php или apache, потому что если я изменю код - практически потеряю возможность обновления

    А хостер был выбран не мной и задолго до этого - менять пока лень
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я нижнаю =(
     
  5. Ensiferum

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

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    какое-то число неправильное 355...
     
  6. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    Ensiferum

    в двоичном 101100011 - очень даже правильное :))
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Не, че-то нереальное.
     
  8. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0

    Посмотри пока я не убрал :) попробуй выставить значение более 355 (выстави во второй форме и отправь, а когда страница обновиться и будет 356 полей нажми отправить в первой форме)
    http://flast-shop.de/test_post.php?num=355
     
  9. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    а вот код теста


    Код (Text):
    1. <?php
    2. $num = $_GET['num'];
    3. if($num){
    4.     echo 'Num = '.$num;
    5.  
    6.  
    7.  
    8.     $postData = $_POST['postdata'];
    9.     ?>
    10.  
    11.         <form method="post">
    12.         <?php
    13.             for($i=1; $i<=$num; $i++){
    14.                 ?>
    15.                    <input type="text" name="<?php echo $i; ?>" value="<?php echo $i; ?>">
    16.                 <?php
    17.             }
    18.         ?>
    19.         <input type="submit">
    20.         </form>
    21.     <?php
    22.  
    23.     echo '<pre>';
    24.     var_dump($postData);
    25.     echo '</pre>';
    26. }
    27. ?>
    28. <BR>
    29. <form method="get">
    30.     <input type="text" name="num">
    31.     <input type="submit">
    32. </form>
    33. <?php
    34. phpinfo();
    35.  
    36. ?>
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ю донт хев пермишн - написал
     
  11. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    - да Forbidden 403. You don't have permission to access /test_post.php on this server.
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это типа когда он засыпался?
     
  13. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    оно самое
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а это тебе хостер сказал, что хрен тебе а не 355 переменных в посте?

    что они написали в ответе, если ты спрашивал?
     
  15. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    Еще не спрашивал, завтра спрошу, потом отпишусь
     
  16. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    Все всем спасибо, проблема решилась - хостер отключил ModSecurity - кому интересно что это: http://www.modsecurity.org
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а что, клевая штука? или так себе?
     
  18. bazhin

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

    С нами с:
    17 авг 2010
    Сообщения:
    11
    Симпатии:
    0
    ModSecurity - на мой взгляд для хостера штука отличная, хотя я только мельком глянул что это такое и с чем ее едят
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) а с практической точки зрения никто не знает?
     
  20. Ещё один программер

    Ещё один программер Активный пользователь

    С нами с:
    2 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Адрес:
    Довольно-таки средняя Азия
    Эта проблема обходится очень просто: создайте отдельную таблицу базы данных, записывайте в неё генерируемые значения, переходите на другую страницу и считывайте данные таблицы на неё, после чего таблицу очищайте.

    У меня тоже была необходимость передать на другую страницу для обработки более 10 массивов с 700+ элементами в каждом. Post с этим справился на "ура" (спасибо хостеру), но как-то уродливо это выглядит. Пришлось столько 'hidden'-ов создавать))). Сейчас только через базу действую - и логичнее, и безопаснее.
     
  21. JeBance

    JeBance Новичок

    С нами с:
    8 сен 2015
    Сообщения:
    1
    Симпатии:
    0
    В php.ini есть волшебная строчка: max_input_vars = 1000
    Передается ровно 1000 пар {значение : переменная}