Aller au contenu

faire passer une variable dans une include


Sujets conseillés

Posté

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

Posté

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é
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']

Posté

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

Posté

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.

Posté

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.

Posté

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?????

Posté

Difficile de dire plus si tu ne détailles pas.

Peux-tu nous mettre le contenu de 'page2.php' et aussi de 'index.php' ?

Posté

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

Posté

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 :D )

Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...