fredrick Posté 26 Avril 2006 Posté 26 Avril 2006 Bonjour, J'ai trois pages : 1) l'index.php qui incluent les deux autres pages grâce à include(); 2) page1.php qui va chercher dans la BDD la varaible "id" ($data['id'];) et qui l'envois à la page2.php grâce à <a href="index.php?page=page2"> 3) page2.php qui reçoit la variable "id" et la traite. Cette page s'ouvre dans la page index.php grâce à : case 'page2' : include('monsite/page2.php ');break; J'aimerais envoyer la variable $data['id'] de la page 1 à la page 2. Comment faire? Merci
captain_torche Posté 26 Avril 2006 Posté 26 Avril 2006 Il te suffit de le mettre en second paramètre : <a href="index.php?page=page2&id=<?=$data['id']?>">page 2</a>
fredrick Posté 26 Avril 2006 Auteur Posté 26 Avril 2006 Un grand merci, je vais essayer ça. Passe une bonne journée.
fredrick Posté 26 Avril 2006 Auteur Posté 26 Avril 2006 Je ne dois rien mettre dans l'include???? je laisse case 'page2' : include ('monsite/page2.php');break; ou je dois mettre : case 'page2' : include('monsite/page2.php?id=<?=$data['id']?>');break; ???
loban Posté 26 Avril 2006 Posté 26 Avril 2006 Je ne dois rien mettre dans l'include???? je laisse case 'page2' : include ('monsite/page2.php');break; ou je dois mettre : case 'page2' : include('monsite/page2.php?id=<?=$data['id']?>');break; ??? <{POST_SNAPBACK}> Non, rien de spécial à mettre au niveau de l'include. Dans la page 2, tu retrouveras ta donnée dans $_GET['id']
fredrick Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 C'est exactement ce que je fais mais cela ne marche pas car la variable ne passe pas de page en page à cause des includes. Si je n'include pas ma page 1 et 2 alors tout fonctionne. Je répète : J'ai mis un lien sur ma page1 pour envoyer une variable 'id' prise dans ma base de donnée vers la page2. voici le lien echo '<a href="index.php?page=page2&id=<?=$data['id']?>">' , stripslashes(htmlentities(trim($data['titre']))) , '</a>'; La page1 est inclue dans la page index grâce à : case 'page1' : include (monsite/page1.php);break; La page2 est aussi inclue dans la page index grâce à case 'page2' : include ('monsite/page2.php');break; La page2 reçoit la variable grâce à echo $_GET['id']; Mais tout cela ne marche pas !!!! Il y a un problème dans le lien je pense. j'ai déjà essayer ces deux trucs-ci mais ça ne marche pas non plus ??? D'abord en retirant l'echo pour le problème de ' qui se répète : ?> <a href="index.php?page=page2&id=<?=$data['id']?>"> <? stripslashes(htmlentities(trim($data['titre']))) echo '</a>'; Ensuite celui-ci en mettant des \': echo '<a href="index.php?page=page2&id=<?=$data[\'id\']?>">' , stripslashes(htmlentities(trim($data['titre']))) , '</a>'; Quelqu'un a-t-il une idée d'où vient mon problème ? Merci
captain_torche Posté 27 Avril 2006 Posté 27 Avril 2006 Je t'ai donné le code du lien, dans le cas où tu le mettais directement en HTML. Comme tu le fais, tu as laissé les balises PHP, dans le code PHP, d'où l'erreur. Pour un lien dans un echo, comme tu le fais, il te suffit de faire : echo '<a href="index.php?page=page2&id='.$data['id'].'">'.stripslashes(htmlentities(trim($data['titre']))).'</a>'; PS : en analysant le code généré, ça aurait sûrement pu te mettre sur la piste.
fredrick Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 J'ai fait exactement tout ce que vous m'avez dit de faire. En fait c'est tout ce que j'avais fait au début mais qui ne marchait que lorsque je n'étais pas dans les includes. case 'page1' :include('monsite/page1.php'); =>ok case 'page2' :include ('monsite/page2.php'); =>ok <a href blablabla &id='.$data['id'].'>Lien vers la page2 =>ok Lorsque je clique sur le lien de la page1, elle s'ouvre bien dans l'include et elle est correcte. Lorsque je clique sur le lien de la page1 qui contient la variable id, la page2 s'ouvre bien dans l'include mais n'est pas lue car il ne reconnaît pas l'id. Pourtant la variable est bien comprise dans la page1, elle passe bien dans l'url. Donc la variable est bien captée de la BDD et est bien comprise. le lien est bon et envois bien la variable dans l'url vers la page2. Mais la page2 ne la comprend pas????? Sur la page2 j'ai testé en mettant simplement echo $_GET['id']; pour voir si la variable id allait être reconnue mais rien y fait. Je comprend vraiment pas où est le problème. Qui peut m'aider??? Merci pour votre aide à tous.
fredrick Posté 27 Avril 2006 Auteur Posté 27 Avril 2006 la page2 me met Undefined index: id in .... et pourtant l'url lorsque je suis sur la page2 contient bel et bien la variable ??? monsite.php?page=page2&id=11 $data['id']=11 Comprend rien?????
captain_torche Posté 27 Avril 2006 Posté 27 Avril 2006 Que t'affiche t'il lorsque tu fais un echo de $_GET['id'] ? C'est bien $_GET['id'] que tu récupères dans ton second include ?
loban Posté 27 Avril 2006 Posté 27 Avril 2006 Difficile de dire plus si tu ne détailles pas. Peux-tu nous mettre le contenu de 'page2.php' et aussi de 'index.php' ?
fredrick Posté 28 Avril 2006 Auteur Posté 28 Avril 2006 Ok ça y est j'ai trouvé. Merci beaucoup à vous tous pour votre aide. Je vais vous expliquer ce qui n'allait pas comment ça si quelqu'un rencontre lui aussi le problème, il sera en mesure d'y remédier. Tout était correcte on récupère bien une variable grâce à $_GET['id']; Le lien était bien correcte echo '<a href="...&id='.$data['id'].'>lien</a>'; Sauf une chose l'url dans l'include : il faut mettre case 'page2' : include ('forum/page2.php');break; et non pas l'adresse entière sinon ça marche pas : case 'page2' : include('http://127.0.0.1/monsite/fr/forum/page2.php'); par exemple, Encore merci et bonne continuation à vous tous. Fred
TheRec Posté 28 Avril 2006 Posté 28 Avril 2006 Bonsoir, Heureux que tu aies trouvé une solution à ton problème ! 3) page2.php qui reçoit la variable "id" et la traite. Cette page s'ouvre dans la page index.php grâce à : case 'page2' : include('monsite/page2.php ');break; <{POST_SNAPBACK}> et non pas l'adresse entière sinon ça marche pas :case 'page2' : include('http://127.0.0.1/monsite/fr/forum/page2.php'); <{POST_SNAPBACK}> Si tu nous avais donné le code exact de ta page, ton problème aurait été réglé en 2-3 messages maximum ... Donc soigne un peu ta question, présente ton code, on ne te demande pas de poster l'entier de l'application que tu fais (surtout pas), et à moins que tu travaille sur un algorithme hyper complexe que tu comptes déposer après, je ne pense pas que tu risque beaucoup en postant une partie de ton code. Ceci dans le but de t'aider le mieux possible et le plus rapidement ! Pour information, lorsque tu utilises une URL dans des fonctions comme "include", "require", "fopen", ... si PHP est compilé avec le paramètre approprié (allow_url_fopen) et pour peu que ta version de PHP soit supérieure à 4.0.3, ton serveur fera une requête avec le protocole lié à l'URL (HTTP en l'occurrence) pour obtenir le contenu du fichier distant... On appelle cela un include de fichier à distance, et ce fichier à distance n'a pas connaissance des variables contenu dans $_GET de ton fichier local... Si tu avais effectuée ton include comme ceci : include('http://127.0.0.1/monsite/fr/forum/page2.php?id='.$_GET['id']); Cela aurait fonctionnée...mais tant que tu es sur le même serveur il ne faut pas utiliser cette méthode...elle ralentit le chargement de la page et n'amène que des restrictions... (Tu nas aucun contrôle sur ces fichier distant...évidemment dans ton cas ce fichier est à toi, mais imagine que tu utilise le fichier de quelquun dautre, penses-tu quil serait ravi que tu puisse redéfinir des variable quil utilise dans son code )
fredrick Posté 29 Avril 2006 Auteur Posté 29 Avril 2006 merci pour ton information, j'en prend note. Je tâcherai de soigner mes questions à l'avenir. C'est marrant j'étais persuadé que mon problème ne venait pas de là, c'est la raison pour laquelle j'ai simplifié cette partie là lol. Bonne journée, Fred
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant