2016-02-09 13 views
9

$_POST scheint, dass das nicht funktioniert. Ich habe PhpStorm 10.0.3 installiert und benutze den Standard-PHP-Interpreter des WAMP-Servers.

in der index.php:

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

Im a.php:

var_dump($GLOBALS); 

, wenn ich schreibe "asdf" in der Form:

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 funktioniert gut , aber der Interpreter scheint nicht die $_POST Variable zu füllen.

php.version: 5.4.12 (gleiche Problem mit 5.6.18 und 7 Interpreten aus http://php.net/downloads.php)

php.ini für diese Version: (default von wamp)

Andere Häfen wie (3306) für MySQL funktioniert gut im PHPStorm. (Verbindung mit phpMyAdmin ist ok)

Xdebug port: 9000 PhpStorm Einbau-Server-Port: 63342

Alles funktioniert gut, wenn ich von Netbeans IDE im Standardlocalhost bauen: 8000

gleiche Problem in meinem Laptop.

+13

Verwendung Apache von WAMP (oder ein anderen geeigneten Web-Server) zu dienen, Ihre Webanfragen. Im Moment verwenden Sie den eigenen eingebauten PHP-Web-Server von PHP, der Probleme mit der Verarbeitung von POST-Anfragen hat. – LazyOne

+3

Tatsächliches (Haupt-) Ticket auf JB Issue Tracker: https://youtrack.jetbrains.com/issue/WEB-17317. Neben der Verwendung eines geeigneten Webservers (Apache/nginx/IIS/etc) können Sie auch den eigenen Webserver von PHP verwenden (kann unter Verwendung von "PHP Built-in Web Server" Run/Debug Configuration gestartet werden) – LazyOne

+0

Built-in Server schließlich funktioniert !!! Danke!! – espumita

Antwort

-2

Versuchen Sie, die enctype der Form einstellen:

<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

Ihre Lösung bezieht sich nicht auf das Thema der Diskussion. – javadaskari

0

diese Abhilfe Einfügen in Initialisierung Ihrer Seite $_POST als normal zu verwenden:

<?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

Es ist nicht mit PhpStorm egal, kann HTTP_RAW_POST_DATA speichern unerkannte Daten von der Anfrage, versuchen Sie es, content-type: application/x-www-form-urlencoded hinzufügen zu Http-Kopfzeilen;

1

Das neue PhpStorm 2017.2.2 EAP-Build (172.3968.23) hat dieses Problem gelöst.

Fehler WEB-17317 502 Fehlerhafter Gateway-Fehler vom Server beim Senden von Daten.

Sie können es herunterladen here.

Vollständiger Release Notes link => confluence.jetbrains.com/display/PhpStorm/PhpStorm+EAP+172.3968.23+Release+Notes