Comment inclure une page dans une page qui est déjà inclu lui même?

Signaler
Messages postés
8
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
29 janvier 2008
-
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
-
Bonjour à tous,
Je voudrai inclure une page dans une autre page qui est elle aussi déjà incluse dans une autre page. Je m'explique:
J'ai mon fichier index.php qui doit contenir le tout; dans le corps de ce fichier, j'ai inclu un fichier dite centre.php qui a la fonction suivante:
<?
if (empty($page))
{
include("principale.php");
}
else
{
include($page.".php");
}


?>
donc, pour que mes pages soient affichés dans index.php, je dois faire index.php?page=mapage
Mais quand dans ma page aussi, je dois chargé un fichier, j'ai fait une autre include d'un fichier "centre2.php" comme suite:
<?
if (empty($pagec1))
{
include("indexmail.php");
}
else
{
include($pagec1.".php");
}
?>
Pour l'affiche au tout début, ça passe mais, quand par exemple je vais cliquer sur le bouton "Lire" dans le fichier indexmail.php, comment vais-je faire pour que le fichier apparaisse à la place de indexmail.php et toujours dans le fichier index.php?

Je ne sais pas si c'est possible mais je pense que si c'est le cas, cela devrait être facile pour vous...

Merci.
falymarc

5 réponses

Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Salut faculd,
Attention, il ne faut pas faire
<?php include($page.".php"); ?> avec $page posté dans l'url
sinon des petits malins peuvent s'en servir pour pirater ton site (cherche de la doc sur la "faille include" sur la toile). Préfère plutôt énumérer toutes les valeurs que tu peux attendre. Par exemple :
<?php switch($page)
{
case "centre" : include("centre.php"); break;
case "centre2" : include("centre2.php"); break;
}?>

Pour ton problème d'imbrication d'includes, si tu postes 2 variables alors il ne doit pas y avoir de pb :
tu fais des liens du genre ...index.php?page='mapage'&pagec1='centre2'
Et ensuite tu lis en 2 temps, comme tu as fait.

Pour t'aider à y voir clair, il faut bien garder à l'esprit que la fonction include ne fait que recopier le contenu du fichier inclus dans le fichier "incluant"...

Si tu veux une aide plus précise, essaie de détailler un peu plus ce que tu veux faire, donne un peu plus de code.

Arnaud
C'est avec plaisir que je vais donner plus de précisions, et d'ailleurs, étant débutant, je t'avoue que je ne comprend pas très bien ton code (sûrement dû à l'ignorance), je n'ai jamais entendu parlé de "switch".


Sinon, sur la partie où je bloque dans mon site c'est la ma messagerie interne:


En fait, côté dynamisme, j'ai mis un classeur en javascript munit de 4 sous-dossiers: Accueil, Mail, Liste des membres, Configurations.


Dans la partie Mail à lui-seul, il y a des boutons tels que Lire, Ecrire, Messages envoyés, Messages supprimés, Agenda.


Donc, le but c'est qu'en cliquant sur Lire, on m'affiche la page lecture.php dans le sous-dossier Mail; même chose pour tous les autres boutons. Or, le classeur se trouve dans le fichier accueil_membre.php qui a été inclus dans index.php.


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


En résumer : « index.php » contient « accueil_membre.php » contient « classeur » contient « mail » qui doit contenir sur clic précis « soit {lecture.php} soit {envoi.php} soit {messages_envoyes.php} soit etc… » sinon « indexmess.php (par défaut) »





Voilà, je vais essayé le index.php?page=accueil_membre&pagec1=lecture mais j’attends toujours toutes propositions meilleurs…

falymarc
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
tu cherches à faire une messagerie alors que tu ne connais pas switch...



pour t'aider, je te dirais lis de la doc... ça pourait t'aider...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
15
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
9 février 2006

Bonjour



vraiment loin de moi l'envie de passer pour une ignorante totale (même
si c'est ce que je suis) mais je souhaiterais rebondir sur ce sujet si
ça ne dérange personne... je cherche egalement à faire un include
dans un include. Pour être plus précise il s'agit d'une galerie photo
assez simple avec thumbs (qui vous le verrez ont deja du javascript sur
le dos pr des raisons esthetiques assez banales) Donc tout betement je
voudrais que dans ma page "galerie.php" (elle même include dans
"index.php") lorsqu'on clique sur une miniature, la page contenant la
photo correspondante se charge dans la partie droite (de galerie.php
donc)



prenant exemple sur le code cité plus haut j'ai donc :

Pour ce qui est de l'include,





<?php switch($page)

{

case "photo1" : include("photo1.htm"); break;

case "photo2" : include("photo2.htm"); break;

}?>






et au niveau des miniatures j'ai :



[index.php?page='galerie'&pagec1='photo1'

]



[index.php?page='galerie'&pagec1='photo2

]



Bon je n'ai pas encore mis de page par défaut
mais je ne pense pas que ça change grand chose.... ça ne fonctionne
pas, même pas de message d'erreur, rien. Je précise que les pages
appelées (celles contenant les photos taille reelle) sont à la racine
du site. Au contraire de galerie.php qui lui se trouve dans un
repertoire. J'ai l'affreux pressentiment que la solution est du genre
évidente........merci d'avance pour votre aide et je l'espere votre
patience ^^"
Messages postés
445
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
22 mars 2007
1
Salut,
1./ Il vaut mieux accéder aux variables postées via un lien ou un formulaire en utilisant les tableaux $_GET et $_POST. Par exmple, si ton url est index.php?var= val, alors au lieu de lire directement $var , il faut faire :
<?php
$var ='';
if (!empty($_GET['var']))
$var = $_GET['var'];
//utilisation de $var
?>
ou bien, plus synthétique :
<?php
$var=(empty($_GET['var'])) ? '' : $_GET['var'];
//utilisation de $var
?>

2./ Il n'y a pas besoin de guillemets dans l'url : si ton adresse est
index.php?page='galerie'
alors $_GET['page'] vaut 'galerie', et non pas galerie

Arn;o)