Comment inclure une page dans une page qui est déjà inclu lui même?
faculd
Messages postés8Date d'inscriptionlundi 3 mai 2004StatutMembreDernière intervention29 janvier 2008
-
16 mars 2005 à 20:29
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 2007
-
18 août 2005 à 14:19
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...
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 17 mars 2005 à 14:37
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.
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…
LunaticPandora
Messages postés15Date d'inscriptiondimanche 12 décembre 2004StatutMembreDernière intervention 9 février 2006 18 août 2005 à 02:39
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 ^^"
Vous n’avez pas trouvé la réponse que vous recherchez ?
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 18 août 2005 à 14:19
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