2016-02-09 34 views
9

$_POST wydaje się, że to nie działa. Zainstalowałem PhpStorm 10.0.3 i użyłem domyślnego interpretera php serwera WAMP.

w index.php:

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

W a.php:

var_dump($GLOBALS); 

gdy wpisuję "asdf" w postaci:

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 działa dobrze , ale wydaje się, że interpreter nie wypełnia zmiennej $_POST.

php.version: 5.4.12 (ten sam problem przy użyciu 5.6.18 i 7 tłumacze z http://php.net/downloads.php)

plik php.ini dla tej wersji: (domyślne z wamp)

Inne porty podobne (3306) dla MySQL działa dobrze w PhpStorm. (Połączenie z phpMyAdmin jest ok)

portu Xdebug: 9000 PhpStorm wbudowany port serwera: 63342

wszystko działa dobrze, jeśli mogę budować z NetBeans IDE w domyślnym localhost: 8000

sam problem w moim laptop.

+13

Korzystanie z WAMP Apache (lub innego właściwego serwera WWW), aby służyć swoim żądania internetowe. W tej chwili używasz wbudowanego prostego serwera WWW PhpStorm, który ma problemy z obsługą żądań POST. – LazyOne

+3

Aktualny (główny) bilet na JB Issue Tracker: https://youtrack.jetbrains.com/issue/WEB-17317. Oprócz właściwego serwera WWW (Apache/nginx/IIS/etc) możesz również użyć własnego serwera PHP (można go uruchomić przy pomocy "Wbudowanego serwera sieciowego" typu Run/Debug Configuration) – LazyOne

+0

Wbudowany Sever wreszcie Prace !!! Dziękuję Ci!! – espumita

Odpowiedz

-2

Spróbuj ustawić enctype formularza:

<form method='post' action='a.php' enctype="multipart/form-data"> 
    <input type='text' name='user_f'> 
    <input type='submit' name='send' value='Send'> 
</form> 
+0

Twoje rozwiązanie nie jest związane z tematem dyskusji. – javadaskari

0

wklej tego obejścia w inicjalizacji Twojej strony do korzystania $_POST jako normalny:

<?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; 
    } 
} 
?> 
0

Nie ma znaczenia, z PHPSTORM, HTTP_RAW_POST_DATA może przechowywać nierozpoznane dane z zapytania, spróbuj, content-type: application/x-www-form-urlencoded dodaj do nagłówków Http;

1

Nowa kompilacja EAP PhpStorm 2017.2.2 (172.3968.23) rozwiązała ten problem.

błąd Bug WEB-17317 502 Bad Brama z serwera gdy dane POST.

Możesz go pobrać here.

całkowite uwolnienie zauważa link => confluence.jetbrains.com/display/PhpStorm/PhpStorm+EAP+172.3968.23+Release+Notes