18073 sujets
Ca dépend ce que tu entends par appeler elle-même une autre page.
En php, il n'y aucune limite à faire des include dans des pages elles-mêmes includées, à autant de niveaux et sous-niveaux que tu veux tant qu'il y a des réserves de mémoire suffisantes.
Si tu parles de popup ou de fausses popup, il va falloir détailler tes intentions.
En php, il n'y aucune limite à faire des include dans des pages elles-mêmes includées, à autant de niveaux et sous-niveaux que tu veux tant qu'il y a des réserves de mémoire suffisantes.
Si tu parles de popup ou de fausses popup, il va falloir détailler tes intentions.
Salut,
Pour répondre à ta question, il s'agit d'indiquer dans les pages apparaissant dans le "conteneur" des url 'absolues'.
Ce que j'entends par 'absolue' est simplement une url qui prends en compte la racine du site.
Cela t'évitera de mauvaise surprises... Car comme tu le sais, l'url d'une page change lorsque l'on l'appelle depuis la racine du site, depuis un répertoire ou depuis un sous-répertoire.
La forme d'un tel lien est la suivante :
L'anti-slash en début de lien indique au navigateur que tu pars de la racine du site. Après, il ne te rete plus qu'à indiquer le chemin à travers ton site (depuis la racine)jusqu'à la page concernée.
Cette solution fonctionne également avec les pages dynamiques, je tiens seulement à préciser que cette méthode est inefficace lors d'un include.
Si tu inclus une page en php, ton chemin vers le fichier devra être écrit depuis le répertoire de la page contenant l'include en question.
Voilà,
J'espère que j'ai été suffisament claire
Modifié par Cygnus (03 Aug 2006 - 11:50)
Pour répondre à ta question, il s'agit d'indiquer dans les pages apparaissant dans le "conteneur" des url 'absolues'.
Ce que j'entends par 'absolue' est simplement une url qui prends en compte la racine du site.
Cela t'évitera de mauvaise surprises... Car comme tu le sais, l'url d'une page change lorsque l'on l'appelle depuis la racine du site, depuis un répertoire ou depuis un sous-répertoire.
La forme d'un tel lien est la suivante :
/chemin_accès/page_visée.htm
L'anti-slash en début de lien indique au navigateur que tu pars de la racine du site. Après, il ne te rete plus qu'à indiquer le chemin à travers ton site (depuis la racine)jusqu'à la page concernée.
Cette solution fonctionne également avec les pages dynamiques, je tiens seulement à préciser que cette méthode est inefficace lors d'un include.
Si tu inclus une page en php, ton chemin vers le fichier devra être écrit depuis le répertoire de la page contenant l'include en question.
Voilà,
J'espère que j'ai été suffisament claire

Modifié par Cygnus (03 Aug 2006 - 11:50)
Non, il ne faut pas mettre le menu dans toutes les pages : c'est bien le but de l'include !
Bon, un petit exemple vaudra mieux qu'un long discours. Voici, en gros résumé, la structure des pages de mon site :
IL suffit donc d'utiliser l'instruction include pour placer automatiquement ton menu à l'endroit souhaité. En bref, l'instruction include("nomfichier.php"); est remplacée automatiquement par le contenu du fichier indiqué, sans créer d'autre page, il est directement inséré dans le code comme si tu avais fait un copier-coller.
Maintenant pour la gestion des répertoires, il est conseillé d'utiliser des chemins partant de la racine du site (c-à-d. en commençant par un / qui au passage n'est pas un antislash mais bien un slash) pour la simple et bonne raison que le navigateur prend comme référence la page appelée et non pas celle où se trouve ton menu (en réalité, le navigateur ignore complètement l'existance de la page contenant ton menu car il reçoit une seule et unique page, conformément à ce qui a été dit plus haut : l'instruction include est remplacée par le contenu du fichier à inclure, l'instruction en elle-même n'existe plus, et le navigateur reçoit donc un seul fichier en un seul tenant. C'est pour cette raison qu'il ne faut pas répéter <html>, <head>, etc. dans les fichiers inclus).
Je vais terminer mon roman par "bon courage". Je ne pourrai pas répondre durant les 7 jours qui suivent (cf signature).
Bon, un petit exemple vaudra mieux qu'un long discours. Voici, en gros résumé, la structure des pages de mon site :
[b]header.php[/b]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head<
<title><?php echo $titre; ?></title>
...
[b]menu.php[/b]
</head>
<body>
<div id="conteneur">
<h1>Le coin web de QuentinC</h1>
<div id="menu">
<h2>Menu</h2>
<ul>
<li><a href="......">......</a></li>
<li><a href="......">......</a></li>
</ul>
<h3>.......</h3>
<ul>
<li><a href="......">......</a></li>
<li><a href="......">......</a></li>
</ul>
......
</div>
<div id="contenu">
<p><?php echo $fileAriane; ?></p>
<h2><?php echo $titre; ?></h2>
[b]footer.php[/b]
</div>
<div id="footer">
<p> ... Copyright ... </p>
</body></html>
[b]foobar.php[/b]
<?php
$titre = "Ma jolie page";
include("header.php");
include("menu.php");
?>
<p> bla bla bla bla bla mon contenu bla bla bla bla bla </p>
<p> bla bla bla bla bla mon contenu bla bla bla bla bla </p>
<p> bla bla bla bla bla mon contenu bla bla bla bla bla </p>
<?php inclute("footer.php"); ?>
IL suffit donc d'utiliser l'instruction include pour placer automatiquement ton menu à l'endroit souhaité. En bref, l'instruction include("nomfichier.php"); est remplacée automatiquement par le contenu du fichier indiqué, sans créer d'autre page, il est directement inséré dans le code comme si tu avais fait un copier-coller.
Maintenant pour la gestion des répertoires, il est conseillé d'utiliser des chemins partant de la racine du site (c-à-d. en commençant par un / qui au passage n'est pas un antislash mais bien un slash) pour la simple et bonne raison que le navigateur prend comme référence la page appelée et non pas celle où se trouve ton menu (en réalité, le navigateur ignore complètement l'existance de la page contenant ton menu car il reçoit une seule et unique page, conformément à ce qui a été dit plus haut : l'instruction include est remplacée par le contenu du fichier à inclure, l'instruction en elle-même n'existe plus, et le navigateur reçoit donc un seul fichier en un seul tenant. C'est pour cette raison qu'il ne faut pas répéter <html>, <head>, etc. dans les fichiers inclus).
Je vais terminer mon roman par "bon courage". Je ne pourrai pas répondre durant les 7 jours qui suivent (cf signature).