Добрый день. Проблема в следующем: попался вредный хостер - не позволяет отправить методом POST в одном запросе более 355 переменных (это не ограничение на объем передаваемых данных - post_max_size) - не могу найти что это за ограничение и вообще настройка ли это php или apache. Может кто сталкивался? Подскажите как обойти. На серваке: - PHP Version 5.2.14 - System Linux - Apache 2.0 За ранее спасибо
bazhin ну можно попробовать через какой-нить JSON сереализовать. Но это я только в теории предпологаю. Но обойти можно полюбас. Вопрос в другом. Вернее их два. Нах вам так много? =) Можно пример? И второй: нах вам такой хостер? Если у вас проект вырос до таких сложностей - арендуйте VPSку хотя бы что ли
igordata Так много - мне нафиг не надо просто есть такой шоп prestashop, у него есть админка, на одной из страниц админки можно перевести практически весь фронт с одного языка на другой, соответственно количество переменных при этом порядка 2500 (кроме этого хостинга я проверил еще 12!!!!! нигде таких проблем больше нет!!!!) Обойти изменением кода можно, но интересно есть ли такая настройка у php или apache, потому что если я изменю код - практически потеряю возможность обновления А хостер был выбран не мной и задолго до этого - менять пока лень
Посмотри пока я не убрал попробуй выставить значение более 355 (выстави во второй форме и отправь, а когда страница обновиться и будет 356 полей нажми отправить в первой форме) http://flast-shop.de/test_post.php?num=355
а вот код теста Код (Text): <?php $num = $_GET['num']; if($num){ echo 'Num = '.$num; $postData = $_POST['postdata']; ?> <form method="post"> <?php for($i=1; $i<=$num; $i++){ ?> <input type="text" name="<?php echo $i; ?>" value="<?php echo $i; ?>"> <?php } ?> <input type="submit"> </form> <?php echo '<pre>'; var_dump($postData); echo '</pre>'; } ?> <BR> <form method="get"> <input type="text" name="num"> <input type="submit"> </form> <?php phpinfo(); ?>
а это тебе хостер сказал, что хрен тебе а не 355 переменных в посте? что они написали в ответе, если ты спрашивал?
Все всем спасибо, проблема решилась - хостер отключил ModSecurity - кому интересно что это: http://www.modsecurity.org
ModSecurity - на мой взгляд для хостера штука отличная, хотя я только мельком глянул что это такое и с чем ее едят
Эта проблема обходится очень просто: создайте отдельную таблицу базы данных, записывайте в неё генерируемые значения, переходите на другую страницу и считывайте данные таблицы на неё, после чего таблицу очищайте. У меня тоже была необходимость передать на другую страницу для обработки более 10 массивов с 700+ элементами в каждом. Post с этим справился на "ура" (спасибо хостеру), но как-то уродливо это выглядит. Пришлось столько 'hidden'-ов создавать))). Сейчас только через базу действую - и логичнее, и безопаснее.
В php.ini есть волшебная строчка: max_input_vars = 1000 Передается ровно 1000 пар {значение : переменная}