2016-02-09 3 views
9

$_POST semble ne pas fonctionner. J'ai installé PhpStorm 10.0.3 et j'utilise l'interpréteur php par défaut du serveur WAMP.

dans le index.php:

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

Dans le a.php:

var_dump($GLOBALS); 

quand je tape "asdf" sous la forme:

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 fonctionne bien , mais il semble que l'interprète ne remplisse pas la variable $_POST.

php.version: 5.4.12 (même problème en utilisant 5.6.18 et 7 interprètes de http://php.net/downloads.php)

fichier php.ini pour cette version: (par défaut de WAMP)

D'autres ports comme (3306) pour MySQL fonctionne bien dans le PhpStorm. (Connexion avec phpMyAdmin est ok)

Port Xdebug: 9000 PhpStorm port du serveur intégré: 63342

Tout fonctionne bien si je construis de Netbeans IDE dans le localhost par défaut: 8000

Même problème dans mon portable.

+13

Utilisez Apache de WAMP (ou tout autre serveur Web approprié) pour servir votre demandes Web. À l'heure actuelle, vous utilisez le propre serveur Web intégré de PhpStorm, que ATM a des problèmes avec la gestion des requêtes POST. – LazyOne

+3

Ticket (principal) actuel sur JB Issue Tracker: https://youtrack.jetbrains.com/issue/WEB-17317. En plus d'utiliser un serveur Web approprié (Apache/nginx/IIS/etc), vous pouvez également utiliser le propre serveur web de PHP (peut être lancé en utilisant le type de configuration "Run/Debug" du serveur Web intégré PHP) – LazyOne

+0

travaux !!! Je vous remercie!! – espumita

Répondre

-2

Essayez de régler les enctype de la forme:

<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

Votre solution n'est pas liée au sujet de la discussion. – javadaskari

0

Coller cette solution de contournement dans l'initialisation de votre page à utiliser $_POST comme normal:

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

Peu importe avec PHPStorm, HTTP_RAW_POST_DATA peut stocker les données non reconnues de la requête, essayez-les, content-type: application/x-www-form-urlencoded ajouter aux en-têtes Http;

1

La nouvelle génération EAP PhpStorm 2017.2.2 (172.3968.23) a résolu ce problème.

Bogue WEB-17317 502 Bad Erreur de passerelle du serveur lors de la publication de données.

Vous pouvez le télécharger here.

version complète des notes link => confluence.jetbrains.com/display/PhpStorm/PhpStorm+EAP+172.3968.23+Release+Notes