PhpStorm $_POST всегда пуст

$_POST кажется, что не работает. Я установил PhpStorm 10.0.3 и использовал интерпретатор php по умолчанию для сервера WAMP.

в index.php:

<form method='post' action='a.php'>
    <input type='text' name='user_f'>
    <input type='submit' name='send' value='Send'>
</form>

В а.php:

var_dump($GLOBALS);

когда я набираю «asdf» в форме:

array (size=9)
      'HTTP_RAW_POST_DATA' => string 'user_f=asdf&send=Send' (length=22)
      '_GET' => 
        array (size=0)
          empty
      '_POST' => 
        array (size=0)
          empty
      '_COOKIE' => 
        array (size=0)
          empty
      '_FILES' => 
        array (size=0)
          empty
      '_ENV' => 
        array (size=0)
          empty
      '_REQUEST' => 
        array (size=0)

$_GET работает хорошо, но кажется, что интерпретатор не заполняет переменную $_POST.

php.version: 5.4.12 (та же проблема с использованием 5.6.18 и 7 интерпретаторов с http://php.net/downloads.php )

Файл php.ini для этой версии: (по умолчанию из wamp)

Другие порты, такие как (3306) для MySQL, хорошо работают в PhpStorm. (Соединение с phpmyadmin в порядке)

Порт Xdebug: 9000 Порт встроенного сервера PhpStorm: 63342

Все работает хорошо, если я строю из IDE Netbeans на локальном хосте по умолчанию: 8000.

Такая же проблема на моем ноутбуке.


person espumita    schedule 09.02.2016    source источник
comment
Используйте Apache из WAMP (или любого другого подходящего веб-сервера) для обслуживания ваших веб-запросов. Прямо сейчас вы используете собственный встроенный простой веб-сервер PhpStorm, у которого у ATM есть проблемы с обработкой запросов POST.   -  person LazyOne    schedule 09.02.2016
comment
Встроенный Север наконец-то работает!!! Спасибо!!   -  person espumita    schedule 10.02.2016
comment
Также можно подтвердить эту проблему для PhpStorm для macSierra, проблема возникает только в среде IDE для почтовых запросов. Размещение моего почтового запроса php в моей папке xampp отлично работает.   -  person    schedule 16.02.2017


Ответы (4)


Новая сборка PhpStorm 2017.2.2 EAP (172.3968.23) решила эту проблему.

Ошибка WEB-17317 502 Ошибка неверного шлюза с сервера при отправке данных.

Вы можете скачать его здесь.

Полная ссылка на примечания к выпуску=>confluence.jetbrains.com/display/PhpStorm/PhpStorm+EAP+172.3968.23+Release+Notes

person jerry    schedule 31.08.2017

Вставьте этот обходной путь в инициализацию вашей страницы, чтобы использовать $_POST как обычно:

<?php
//required when using PhpStorm's built-in webserver
//which always makes $_POST empty
//and must have .ini setting always_populate_raw_post_data = -1
//but will NOT work with enctype="multipart/form-data"
$raw_str = file_get_contents('php://input'); //eg. name1=val&name2=val
if($raw_str) {
    foreach (explode('&', $raw_str) as $pair) {
        $keyvalue = explode("=", $pair);
        $key = urldecode($keyvalue[0]);
        $value = urldecode($keyvalue[1]);
        $_POST[$key] = $value;
    }
}
?>
person BeatriceThalo    schedule 30.06.2017

Это не имеет значения с PHPSTORM, HTTP_RAW_POST_DATA может хранить нераспознанные данные из запроса, попробуйте, content-type:application/x-www-form-urlencoded добавить в заголовки Http;

person lele    schedule 15.08.2017

Попробуйте установить enctype формы, без него массив $_POST может быть не заполнен, так как PHP получает только строку полей, не зная, что с ней делать:

<form method='post' action='a.php' enctype="multipart/form-data">
    <input type='text' name='user_f'>
    <input type='submit' name='send' value='Send'>
</form>
person bardiir    schedule 13.05.2016
comment
Ваше решение не относится к предмету обсуждения. - person javad; 16.11.2017