3 votes

Problème étrange avec le post en PHP Storm

Je veux imprimer les données de $_POST mais pour une raison quelconque, le côté PHP ne reçoit pas les données quand je fais POST .

Voici le code super simple dans un fichier appelé test.php

<?php
    echo "<b>GET </b>";
    print_r($_GET);
    echo "<br><b>POST </b>";
    print_r($_POST);
?>

<html>
    <body>
        <form action="test.php" method="post">
            <input type="text" name="name"><br>
            <input type="text" name="email"><br>
            <input type="submit">
        </form>
    </body>
</html>

Quand je visite http://localhost:63342/pastr/test.php et de remplir un nom et une adresse électronique, puis de cliquer sur "Envoyer", les informations sont affichées. J'ai vérifié à partir de l'onglet réseau de Chrome et j'ai vu que les données sont affichées de la manière suivante name=this+should+get+posted+as+name&email=this+should+get+posted+as+email .

Voici une capture d'écran des en-têtes complets, au cas où le problème pourrait s'y cacher : http://i.imgur.com/pRJe58B.png

Tout semble fonctionner, sauf que la page Web affiche ceci :

GET Array ( )
POST Array ( )

Le tableau POST est en quelque sorte vide ? Qu'est-ce que j'ai fait de mal ?

Remarque, cela fonctionne bien si je change la méthode en GET quand je passe à get, je vois ceci :

GET Array ( [name] => this should be name [email] => this should be email )
POST Array ( )

Ma question est la suivante : Qu'est-ce que je fais de mal ici en essayant d'imprimer les données POST-ed et comment puis-je le corriger pour que je puisse imprimer le nom et l'email reçus ?

Note : en essayant echo $_POST['name'] y echo $_POST['email'] Les deux aboutissent à des erreurs très similaires : Notice: Undefined index: name in C:\Users\Admin\Desktop\2\g\pastr\test.php on line 8
Notice: Undefined index: email in C:\Users\Admin\Desktop\2\g\pastr\test.php on line 9

2voto

Poria Points 869

Utilisez Apache du WAMP (ou tout autre serveur web approprié) pour répondre à vos demandes web. Actuellement, vous utilisez le serveur web simple intégré à PhpStorm qui a des problèmes avec les requêtes POST.

J'espère que cela vous aidera

1voto

Ruslan Osmanov Points 13305

Le script est correct, et il devrait fonctionner, si le serveur Web traite effectivement le même test.php . Essayez d'utiliser $_SERVER['PHP_SELF'] au lieu de l'option codée en dur test.php :

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X