Пустой массив $ _POST в PHP 5.2.6 / IIS CGI

У меня возникла очень странная проблема с PHP 5.2.6 с IIS в Windows XP (пробовал как CGI, так и ISAPI). Я запускаю новую установку с настройками php.ini по умолчанию.

Сначала предположим следующий (уродливый, но эффективный) HTML-код:

<form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post">
<input type = "hidden" name = "test1" value = "foo" />
<input type = "hidden" name = "test2" value = "bar" />
<input type = "submit">
</form>
<br /><br />
<pre>
<?php print_r($_POST); ?>
</pre>

Когда форма отправлена, я ожидаю, что она выведет массив, содержащий две скрытые переменные. Вместо этого я вижу только пустой массив. Если я изменю метод формы на «get» и изменю print_r ($ _ POST) на print_r ($ _ GET), я увижу элементы массива без проблем.

Я пробовал такие варианты, как <?php print file_get_contents('php://input'); ?> и <?php echo print_r($HTTP_POST_VARS); ?>, но безрезультатно. Есть идеи, в чем может заключаться проблема?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
3 288
2

Ответы 2

Что ж, если это вас утешает, ваш код работает так, как задумано в PHP5 с Apache.

Быстрый поиск в Google выявил еще пару человек с той же проблемой, но не нашел окончательного решения - ближе всего было это ...

Check your IIS configuration and see what verbs are permitted for PHP. My guess is that POST isn't included. You should have GET and POST enabled at a minimum, or just make your life easy and allow all verbs.

Не забудьте обновить свой вопрос, если найдете решение; Я уверен, что другие люди выиграют.

Спасибо, Флубба, но у меня в IIS включены все глаголы. По-прежнему не удается получить переменные POST в PHP.

giltotherescue 24.11.2008 21:49

Ну, у меня была такая же проблема.

Файл PHP.ini придирчив ... убедитесь, что у вас нет "GB" вместо "G". У меня был "post_max_size" 1 ​​ГБ вместо 1 ГБ, PHP работал нормально, за исключением запросов POST.

Другие вопросы по теме