Partage
  • Partager sur Facebook
  • Partager sur Twitter

Transmettre une variable $_POST sans formulaire

et sans modifier la page qui recevra le post

    23 décembre 2007 à 19:54:39

    Bonsoir à tous,

    Est-il possible d'envoyer une variable superglobale $_POST sans utiliser de formulaire?
    En effet j'aimerais inclure une page, mais comme elle nécessite des données $_POST, elle s'affiche tout en précisant qu'elle manque d'informations (normal :p )

    J'ai essayé :

    1. $_POST['variable1'] = 'donnée1';
    2. $_POST['variable2'] = 'donnée2';
    3. $_POST['variable3'] = 'donnée3';
    4. include "page.php";


    Mais bon comme php n'est pas non plus magique, je ne m'attendais pas à ce que cela marche !
    L'idée serait donc de trouver quelque chose qui transmette donc ces $_POST.

    Merci beaucoup
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2007 à 20:02:58

      Salut,

      Et pourquoi ta solution ne fonctionnerait pas ?


      Tracker.
      • Partager sur Facebook
      • Partager sur Twitter
        23 décembre 2007 à 20:05:05

        Théoriquement il faut un formulaire mais il ne peut contenir que des champs cachés ^^
        1. <form action="cible.php" method="post">
        2. <p>
        3. <input type="hidden" name="donnee1_pour_$_POST['donnee1']" value="donnee1_pour_sa_valeur" /><input type="submit" value="Valider" />
        4. </p>
        5. </form>
        • Partager sur Facebook
        • Partager sur Twitter
          23 décembre 2007 à 20:06:41

          Tu fais bien ce que tu veux avec $_POST, donc ajouter des infos à l'intérieur je ne vois pas le problème...

          File le code de la page que tu essaies d'inserer.


          Tracker.
          • Partager sur Facebook
          • Partager sur Twitter
            23 décembre 2007 à 20:07:30

            1. <?php
            2. $HTTP_POST_VARS['truc'] = 1;
            3. ?>


            marchera</span>

            edit

            re-edit:

            hum... je suis un boulet aujourd'hui o_O

            même sa marchera :

            1. <?php
            2. $_POST['truc'] = 1;
            3. ?>

            • Partager sur Facebook
            • Partager sur Twitter
              24 décembre 2007 à 12:37:15

              Justement je ne connais pas le code de la page et elle est sur un autre site, donc je ne peux pas y avoir accès.

              Merci de vos réponses
              • Partager sur Facebook
              • Partager sur Twitter
                24 décembre 2007 à 12:51:05

                Citation : Oliveure

                Justement je ne connais pas le code de la page et elle est sur un autre site, donc je ne peux pas y avoir accès.

                Merci de vos réponses



                Dans ces conditions c'est pas un include qu'il te faut !!
                Tu dois requêter la page depuis le serveur. Tu as plusieurs possibilités pour arriver à tes fins: Utiliser des bibliothèques toutes prêtes comme l'extension pecl HTTP si elle est installée, ou le FrameWork Zend. Sinon à la main avec un fsockopen(...) tu peux préparer un message POST ou via un file_get contents(...) avec un stream_context:

                1. <?php
                2. <?php
                3. $postdata = http_build_query(
                4.    array(
                5.       'var1' => 'du contenu',
                6.       'var2' => 'doh'
                7.    )
                8. );
                9. $opts = array('http' =>
                10.    array(
                11.       'method'  => 'POST',
                12.       'header'  => 'Content-type: application/x-www-form-urlencoded',
                13.       'content' => $postdata
                14.    )
                15. );
                16. $context  = stream_context_create($opts);
                17. $result = file_get_contents('http://example.com/submit.php', false, $context);
                18. ?>


                En même temps j'ai bien peur que ta solution soit un peu pourrie vu que la page que tu vas récupérer sera un document html complet donc non-insérable dans un autre...


                Tracker.
                • Partager sur Facebook
                • Partager sur Twitter

                Transmettre une variable $_POST sans formulaire

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown