[PHP] methode GET

Fermé
guy2mars - 6 mars 2011 à 18:21
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 6 mars 2011 à 22:28
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



A voir également:

3 réponses

Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 193
Modifié par Bertrand40 le 6/03/2011 à 18:31
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
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
Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 193
Modifié par Bertrand40 le 6/03/2011 à 18:50
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
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
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
6 mars 2011 à 20:23
c'est quoi au juste ton idée, tu veut faire un formulaire d'inscription en plusieurs étapes??
0
Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 193
6 mars 2011 à 21:34
Oui Joos. Guy2mars, tu pourrais en effet faire plus simple, sans passer par toutes ces pages.
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
6 mars 2011 à 21:46
Ben les sessions sont la pour ce genre de système, c'est plus pratique de les utiliser??
0
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
6 mars 2011 à 22:28
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