Problème de formulaire PHP (POST)

Résolu
Bonjour,

J'ai un problème qui me donne des migraines depuis quelques temps.

J'ai mes formulaire qui ne renvoies plus rien.

C'est à dire que d'un coup un formulaire qui fonctionnait bien ne fonctionne plus du tout.

Pour être sur j'ai crée une page simple :
<form action="test.php" method="post">
<input name="txt" type="text">
<input name="" type="submit" value="Envoyer">
</form><br>
<?php print_r($_POST); ?>


Ce qui me renvoi un Array vide.

Les logs d'apache et de php ne me renvoi rien de bizzard.

Donc je coince.

Merci d'avance

38 réponses

Résumé de la discussion

Le problème porte sur un formulaire HTML dont l'envoi en POST ne renvoie plus aucune donnée, $_POST restant vide malgré une page de test simple et l'affichage du contenu, ce qui bloque le traitement côté serveur. Des réponses indiquent que les $_GET fonctionnent tandis que $_POST reste bloqué; les causes possibles évoquées incluent une configuration serveur, un blocage du POST via htaccess, ou des problèmes liés à NTLM. Des pistes pratiques suggèrent d'envoyer une variable sans formulaire via un lien pour vérifier le POST et d'examiner la configuration du serveur, notamment NTLM ou des règles de sécurité qui bloquent les données.

Bobot (l’IA à votre service)
  1. Les $_GET fonctionnent, seul les $_POST ne fonctionnent pas.
    N'étant pas sur que le problème ne venait pas de easy php j'ai désinstaller et réinstaller la dernière version et vu que sa ameliorai pas j'ai installer WAMP sans résultat. (et j'ai verifier si le serveur web était bien lancé)
    Le code que j'ai fournie en haut est la totalité de la page test.php
    1. Contributeur
      Bonjour,

      Essai, ça:

      <p>
      <form action="test.php" method="post">
      <input type="text" name="txt" />
      <input type="submit" value="Envoyer" />
      </form>
      <br />
      </p>
      
      <?php 
      if(isset($_POST['txt']))
                echo $_POST['txt'];
      ?>
      1. Contributeur
        Alors essaie avec une valeur par défaut ...

        <p>
        <form action="test.php" method="post">
        <input type="text" name="txt" value=1000 />
        <input type="submit" value="Envoyer" />
        </form>
        <br />
        </p>

        <?php
        if(isset($_POST['txt']))
        echo $_POST['txt'];
        ?>
        1. La valeur par defaut s'affiche bien dans le champ de texte mais il ne s'affiche pas avec le echo
          1. Contributeur
            Tu utilises quoi comme navigateur ? Cela le fait (ou plutôt le fait pas) avec tous ?
            1. Bonjour

              <html>
              <form action="" method="post">
              <input name="txt" type="text">
              <input type="submit" value="Envoyer">
              </form>
              <?php 
              @$txt = $_POST['txt']; 
              echo $txt;
              ?>
              </html>
              
              
              1. Le navigateur n'a rien à voir avec un problème PHP

                Par contre, pour moi c'est évident que $_post soit vide, si tu n'as rien envoyé :O

                C'est pas dans la page du formulaire qu'il faut afficher les valeurs du tableau post, mais dans la page d'action du form, donc test.php

                (A moins que ce soit la même ?)
                1. Contributeur
                  Si tu relis sa requête, il a un formulaire dans sa page qui fonctionnait auparavant et qui a soudainement cessé de fonctionner... s'il n'a pas changé le code, il est évident que ce n'est pas un problème PHP.
                  S'il envoie la valeur par défaut, le $_POST ne sera pas vide et je suppose qu'il a pensé à noter quelque chose dans la zone de texte.
                2. ouais me suis dit ça aussi, alors j'ai viré l'argument du action="" :)
                3. Pour être sur j'ai crée une page simple : 


                  S'il a créé une nouvelle page, c'est bien qu'il a touché au code, non ? :O
                4. Contributeur
                  Il n'a pas touché au code, il a refait un script pour essayer avec un formulaire simple... d'après ce qu'il a dit dans sa requête, aucun de de ses formulaires ne fonctionnent...
                  Ceux qui ont cessé de fonctionner sont dans son script d'origine.
              2. @Neliel : Firefox, ie7 et ie8 et le problème reste.

                @fxtaa : J'ai essayer ton script mais sa ne marche pas non plus.

                @jeangilles : oui la page test.php est celle qui affiche le formulaire et aussi celle qui affiche le résultat.
                1. chez moi ca marche pourtant, tout comme le script de neliel.

                  Copie colle nous toutes ta page test.php qu'on voit a quoi elle ressemble stp.
                2. Contributeur
                  Il n'aurait pas touché aux extensions d'EasyPHP par hasard ?
              3. Ton interpréteur php est bien lancé ? (question à la con, mais on ne sait jamais XD)
                1. Contributeur
                  Si EasyPHP ne serait pas lancé, il tomberai sur un message d'erreur style "Page Introuvable"
                  D'un autre côté, peut-être que son interpréteur bug...
                2. Page introuvable ? Pour une page PHP ?
                  Non, il aurait juste une page blanche avec le code html simple
                3. Contributeur
                  C'est une page php... On tombe sur une erreur si on essaie d'ouvrir une page php sans interpréteur.

                  Après essai, on tombe sur une erreur de connexion à localhost...
                4. ben je viens aussi d'essayer, et j'ai pas d'erreur, juste le formulaire html
                  même sur le vieux netscape 7.1 ca le fait ...
                  Et ca fait donc bien ce qu'il dit : le formulaire qui est toujours vide, sans rien d'affiché (normal)
                5. Contributeur
                  Après essai, je confirme ce que j'ai dit: si EasyPHP est arrêté, aucune page PHP ne fonctionnent même s'il y a du code HTML à l'intérieur... Je tombe direct sur une erreur de connexion à 127.0.0.1
              4. Contributeur
                Essaie d'envoyer une variable sans formulaire directement dans un lien HTML.

                <a href="test.php?txt=3>Lien</a>
                


                1. Contributeur
                  Et en remplaçant POST par GET dans ton formulaire.

                  Soit:

                  <p>
                  <form action="test.php" method="get">
                  <input type="text" name="txt" />
                  <input type="submit" value="Envoyer" />
                  </form>
                  <br />
                  </p>
                  
                  <?php 
                  if(isset($_GET['txt']))
                            echo $_GET['txt'];
                  ?>
                  
                  1. La ça fonctionne :)
                    Mais ca va me taper des url à ralonge toute moche ^^

                    Et j'ai toujours du mal à comprendre ce qui peut bloquer les $_POST
                    1. Contributeur
                      Bizarre, je vais jeter un oeil sur la toile pour voir si je trouve des cas similaires... je te tiens informé.
                      1. Peut être un problème de sécurité au niveau du navigateur qui bloque les posts
                        1. Contributeur
                          Sauf que cela ne fonctionne pas avec tous les navigateurs... je n'ai, personnellement, jamais vu ça...
                          1. Ouais moi non plus XD
                            T'as pas touché à un htaccess qui empêcherait le POST ?
                            1. Je me suis moi même un peu renseigné sur le web et je n'ai rien trouvé.
                              Je dois être le seul à arriver à me mettre dans cette situation sans pouvoir m'en sortir lol.

                              D'après ce que j'ai vu (enfin lu), il est impossible de juste bloquer les requetes $_POST.

                              Donc je ne sais pas ce qui se passe.

                              Merci à tous pour votre aide
                              1. Contributeur
                                Non, je viens de constater un cas similaire, sauf que GET ne fonctionnait pas non plus...
                            2. Contributeur
                              Pardonne mon ignorance, htaccess est un réglage sur EasyPHP ? Parce qu'une réinstallation ne change rien... et il rencontre le même soucis dans Wamp.

                              Le fait que POST est HS alors que GET fonctionne encore indique clairement un problème avec son serveur Apache... Mais ça me dépasse!
                              1. Htaccess est un petit fichier que l'on met dans un dossier, et qui définit des options sur les fichiers de ce dossier et de ses sous-dossiers

                                C'est une sorte de mini "php.ini" local à un dossier, donc rien à voir avec une quelconque réinstallation ^^
                              2. Contributeur
                                Peut-on réinitialiser ce fichier ?
                              3. Ben, tu peux en faire ce que tu veux
                                le réinitialiser ? Logiquement, il est créé à la main(à part peut être à la racine, où il doit y être par défaut), donc je vois pas comment le réinitialiser ^^
                              4. @Neliel

                                Avez-vous pu trouver la solution?

                                puisque je suis dans le même cas 

                              5. @Nf_gervain

                                je suis aussi dans le même cas j'essai de validé les données envoyer et cela n'inscrit riens dans ma table php myadmin alors que 2 jours avant tout fonctionnai biens

                            • 1
                            • 2