[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.
    0
    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
      0
    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");
      0
  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
    0
    1. c'est quoi au juste ton idée, tu veut faire un formulaire d'inscription en plusieurs étapes??
      0
    2. Oui Joos. Guy2mars, tu pourrais en effet faire plus simple, sans passer par toutes ces pages.
      0
    3. Ben les sessions sont la pour ce genre de système, c'est plus pratique de les utiliser??
      0
  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 ? ;)
    0