Пустой массив $ _POST в PHP 5.2.6 / IIS CGI - PullRequest
0 голосов
/ 24 ноября 2008

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

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

<code><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); ?>

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

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

Ответы [ 2 ]

2 голосов
/ 24 ноября 2008

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

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

Проверьте конфигурацию IIS и посмотрите, какие глаголы разрешены для PHP. Я предполагаю, что POST не включен. Вы должны иметь GET и POST включите как минимум, или просто упростите себе жизнь и разрешите все глаголы.

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

0 голосов
/ 29 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...