php, include et arborescence[Résolu]

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Wronschien
Lézard à collerette
Messages : 253
Inscription : 08 mai 2004, 22:48

php, include et arborescence[Résolu]

Message par Wronschien »

je me mets à peine au php et bien sûr j'ai des pbs

en fait pour l'instant je compte classiquement utiliser la fonction include pour faire le même menu sur toutes les pages

mais... les pages ne sont pas toutes dans le même dossier ni au même niveau dans l'arborescence
donc un lien doit pointer vers ../page.php, ou ../../page.php, voire ../dossier/page.php, etc
donc ce n'est pas exactement le même menu pour chaque page vu que les liens changent

ya t il un moyen de régler ça facilement(si possible) et élégamment(tant qu'à faire!)?
peut-être ya t il une variable qui "contient" la racine du site par exemple?

c'est quand même fastidieux de devoir toucher à toutes les pages quand on change le menu!

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Dernière modification par Wronschien le 25 août 2006, 10:49, modifié 1 fois.
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Tu peux en effet créer toi-même une variable indiquant la racine du site juste avant de faire l'include. Tu modifies alors la page contenant ce menu pour utiliser la même variable.

Exemple (en supposant que ton menu est à la racine) :

Dans un autre fichier à la racine :

Code : Tout sélectionner

$path = './'; // (ou $path = '')
@include $path.'menu.php';
Dans un fichier faisant partie d'un sous-dossier :

Code : Tout sélectionner

$path = '../';
@include $path.'menu.php';
etc.

Et dans menu.php lui-même :

Code : Tout sélectionner

echo '<a href="'.$path.'">Accueil</a>';
echo '<a href="'.$path.'sousdossier/page.html">Autre page</a>';
etc.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Wronschien
Lézard à collerette
Messages : 253
Inscription : 08 mai 2004, 22:48

Message par Wronschien »

intéressant
j'essaierai ça, merci!

PS: au fait pourquoi le @ devant include?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

Wronschien a écrit :PS: au fait pourquoi le @ devant include?
Oui, pourquoi ?
ça m'intéresse du coup :D

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Pour ne pas avoir de message d'erreur quand ça foire parce que tu t'es planté dans le nom du fichier ou que tu as oublié de le mettre sur ton FTP. Du coup tu n'as pas le menu mais le reste de la page s'affiche quand même.

J'avoue que je ne retrouve plus aucune référence à cette syntaxe dans la documentation (à part dans les commentaires), donc c'est peut-être méga déconseillé :)
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,

Pour les includes, il y a tout de même plus simple que de définir le path à chaque page :

Code : Tout sélectionner

$_SERVER['DOCUMENT_ROOT']
contient la racine du site sur le serveur (donc en général quelque chose comme /var/www/html/lesite), ça c'est pour les includes de fichiers PHP

Pour trouver des fichiers simples genre feuille de style etc, la syntaxe /premierdosser/deuxiemedossier/monfichier : le premier / c'est la racine.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Wronschien
Lézard à collerette
Messages : 253
Inscription : 08 mai 2004, 22:48

Message par Wronschien »

parfait!

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

Benoit a écrit :Pour ne pas avoir de message d'erreur
merci !

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités