[PHP] methode GET

Bonjour,

j'ai appris lors de mes posts précédents que la methode GET dans 1 form permettait de communiquer les variables de pages en pages.
Or, je cree un form en page A avec method="get" et action page B
en page B, je récupère mes données et les inscrits dans des tables sql. Ca ca marche.
en fin de page B, je place un header qui m'envoie en page C .... ca ca marche aussi.
mais je ne récupère aucune variables en C... Comment puis je transmettre mes variables de A en C ou comment les transmettre de B en C vu qu'en B, il n'y a que du code mysql?
merci d'avance pour vos contributions

3 réponses

  1. Bonsoir,

    Je ne suis pas sûr d'avoir vraiment compris mais tu peux récupérer tes variables par :
    - GET
    - POST
    - requête mysql.

    Comment est-ce que tu essaies de récupérer tes variables dans la dernière phase ?

    @+
    Le jambon de Bayonne c'est bon ! Non, disons que personnellement je trouve ça bon.
    1. je pense que tu n'as pas apprécié mon problème : voici mes bouts de code :
      PAGE A :
      <form method="get" action="bdd_inscription.php">
      <div align="center" style="color: purple"><b>IDENTIFICATION </b></div>
      <table align="center" border="1">
      <tr>
      <td>
      Nom : <input type="text" name="nom" size="40" maxlength="40">
      </td>
      <td>
      Prénom : <input type="text" name="prenom" size="20" maxlength="20">
      </td>
      </tr>
      <tr>
      <td colspan="2" align="center">
      Numéro de licence FFV :<input type="text" name="licence" size="15" maxlength="15">
      </td>
      </tr>
      <tr>
      <td colspan="2" align="justify">
      Adresse :<input type="text" name="adresse" size="40" maxlength="100">
      </td>
      </tr>
      <tr>
      <td colspan="2" align="justify">
      Complément d'adresse :<input type="text" name="cpl_adresse" size="40" maxlength="100">
      </td>
      </tr>
      <tr>
      <td>
      Code postal :<input type="text" name="cp" size="5" maxlength="5">
      </td>
      <td>
      Ville : <input type="text" name="ville" size="40" maxlength="40">
      </td>
      </tr>
      <tr>
      <td>
      Téléphone : <input type="text" name="tel" size="10" maxlength="10">
      </td>
      <td>
      E_mail : <input type="text" name="mail" size="35" maxlength="40">
      </td>
      </tr>

      PAGE B

      <?php
      $annee=date('Y');
      $id_connect = mysql_pconnect($base(),$login(),$mdp());
      if($id_connect ==0)
      {
      echo "Erreur Connexion DB";
      }
      $id_table = mysql_select_db ("vvv");
      //ON VERIFIE SI N EST PAS DEJA INSCRIT POUR CETTE ANNEE
      $requete="select num from inscrits where nom='$nom' and prenom='$prenom' and annee='$annee'";
      $result=mysql_query($requete);
      $ligne=mysql_num_rows($result);
      if ($ligne >0)
      {
      echo "<div align='center'>déjà inscrit dans la base <br>";
      echo "<a href='modif_equipage.php'>Merci de passer en mode modification <br>En cliquant sur ce lien</a></div>";
      }
      else
      {
      ........ etc .......
      en fin de page
      header ("location:./suite_inscription.php");
      ?>
      en PAGE C :

      <?php
      echo ($_GET);
      ?>
      <html>
      <body>
      suite inscription
      <?php
      echo "nom : ".$nom."Prenom ".$prenom;
      ?>
      </body>
      </html>
      ET LA, RIEN NE SORT DU $_GET
      comment faire ?
      merci
    2. Si l'inscription n'est pas d'un membre connu donc, tu passes au else et tu rediriges vers suite_inscription.php sans envoyer aucune variable, donc la page suite_inscription.php n'aura aucune variable à se mettre sous la dent. Il te faudrait une redirection du genre :

      header ("location:./suite_inscription.php?nom=xxxx&prenom=yyyy");
  2. ok, je te remercie, c'est de cette syntaxe que j'avais besoin....
    je récupère pour l'instant une de ces données. j'ai un msg array mais je pense que j'arriverai à retrouver mes billes
    merci
    1. c'est quoi au juste ton idée, tu veut faire un formulaire d'inscription en plusieurs étapes??
    2. Oui Joos. Guy2mars, tu pourrais en effet faire plus simple, sans passer par toutes ces pages.
    3. Ben les sessions sont la pour ce genre de système, c'est plus pratique de les utiliser??
  3. Salut,

    Pour transférer de page en page, il est en effet plus pratique d'utiliser les sessions.

    Pour faire passer par la méthode GET, tu peux transformer $_GET en chaine et utiliser header() :

    $chaine = "";
    foreach($_GET as $name => $value){
    $chaine .= $name . "=" . $value . "&";
    }
    header("Location: pageC.php?".$chaine);


    Mais les données de ton formulaire ne pourront contenir de '=' ni de '&'. C'est justement pour éviter ce problème que je te conseille les sessions. Il y a un bon tutoriel sur le Site du Zero. Avec cela, tu auras :

    Page B
    <?php
    session_start();
    // On a $_GET, on stocke
    $_SESSION['donnees_recues'] = $_GET;
    header("Location: pageC.php");
    ?>

    Page C
    <?php
    session_start();
    // On récupère l'ancien $_GET
    $_GET = $_SESSION['donnees_recues'];
    // Et voilà !
    ?>

    C'est quand-même plus simple, non ? ;)