Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme d'include , de sous repertoire, ../ de chemin... / besoin de conseil

1 réponse
Avatar
nat
bonjour,

j'ai reussi a construire la structure de mon site avec header et footer.

mais maintenant pour une rub j'ai besoin de creer un sous-repertoire et je
me retrouve avec des problemes de chemin (les include etc)... et la j'ai du
mal a comprendre.

les includes sont dans
include/header.php (contient le sommaire et une image en haut)
include/footer.php

image dans header :
img/haut.jpg ("img" dossier a la racine du site)


mon sous- repertoire :
multimedias/videos/index.php


dans le index je met

include("../../include/header.php");
et
include("../../include/footer.php");


lorsque j'affiche index.php, le sommaire s'affiche mais pas l'image du haut,
et les liens dans le sommaire ne sont plus corrects car ils prennent comme
base la dossier "videos"...
de meme pour l'image du haut (presente dans header.php)

j'ai effectue etape par etape en partant de la racine, et une fois arrive a
au moins 1 sous repertoire cela ne fonctionne plus.

je vous remercie d'avance pour vos conseils
car je cherche aussi a comprendre pourquoi cela ne fonctionne plus ou pas...

a+

1 réponse

Avatar
Bruno Desthuilliers
bonjour,

j'ai reussi a construire la structure de mon site avec header et footer.

mais maintenant pour une rub j'ai besoin de creer un sous-repertoire et je
me retrouve avec des problemes de chemin (les include etc)... et la j'ai du
mal a comprendre.

les includes sont dans
include/header.php (contient le sommaire et une image en haut)
include/footer.php


Et ton include_path ?

NB : tu peux le savoir avec get_include_path() ou ini_get('include_path').

BTW, tu peux te faire une page toute simple:

# phpinfo.php
<?php
phpinfo();
?>

pour tout savoir sur ta configuration...

image dans header :
img/haut.jpg ("img" dossier a la racine du site)


Si tu codes ton chemin comme ça, le dossier sera recherché relativement
au répertoire en cours, pas au répertoir racine. Essaye avec
'/img/haut.jpg'.


mon sous- repertoire :
multimedias/videos/index.php


dans le index je met

include("../../include/header.php");
et
include("../../include/footer.php");


Si le répertoire /chemin/complet/vers/ton/espace/personnel/include est
dans ton include_path, vire les '../..'.
(-> include "/include/header.php")


lorsque j'affiche index.php, le sommaire s'affiche mais pas l'image du haut,


Normal, tu donnes un chemin relatif au répertoire en cours. Quand tu
"inclus" un fichier, c'esst *vraiment* une inclusion - c'est exactement
comme si tu copiais-collais le contenu du fichier inclus... donc tous
les chemins relatifs sont résolus par rapport au répertoire courant -
pas par rapport au répertoire contenu le fichier inclus.

Note que pour les urls, donner le chemin à partir de la racine de ton
site (cf l'exemple pour /img/xxx.gif) suffit. Pour accéder à des
fichiers depuis le code php, il faut connaitre le chemin *réel*, soit
relativement au répertoire en cours (celui dans lequel se trouve le
script appelé), soit à partir de la racine du système de fichier, que tu
peux déduire de $_SERVER["PATH_TRANSLATED"].

et les liens dans le sommaire ne sont plus corrects car ils prennent comme
base la dossier "videos"...


Même motif, même punition.