8792 sujets

Développement web côté serveur, CMS

Bonjour à tous

Voici mon problème :
je fait pointer un domaine www.coucou.com sur un répertoire de mon domaine principal : www.numero1.com/coucou/
Dans ce répertoire www.numero1.com/coucou/ il n'y qu'un fichier index.php qui fait des include sur des fichiers de www.numero1.com, je remonte donc d'un niveau avec : include("../$page.php"); ça marche sans problème. Mais hélas ça ne marche que pour ça!
Si par exemple je fait pour appeler le fichier css :
<link rel="stylesheet" href="../style.css" type="text/css"> ça ne marche pas... aucun css d'appliqué .
Je test avec include("../style.css"); dans le body juste pour tester, là il me lache le gros pavé du css, donc ce qui me prouve bien que si il veut il trouve ce fichier!
J'ai l'impression qu'il veut voir mes fichiers dans www.numero1.com qu'avec des includes ? Je ne peux meme pas afficher une simple image / <img src="../album.jpg" width="100" height="68" />.

Par contre! si je ne passe pas par www.coucou.com mais si je tape directement : www.numero1.com/coucou/ là il reconnait tous les fichiers avec "../"

Voilà j'espère avoir été claire... j'ai vraiment besoin d'aide merci
Modifié par irong (28 Jan 2007 - 13:45)
Ce comportement est tout à fait normal...

Les liens vers les feuilles de style dans les balises HTML sont interprétés par le navigateur.
Lorsque tu indiques ../ pour une page se trouvant sur www.truc.com/coucou, le navigateur comprend qu'il doit remonter d'un dossier et va fouiller à la racine de www.truc.com.
En revanche quand tu appelles ta page par www.coucou.com, pour le navigateur, il se trouve déjà à la racine du site web. Par conséquent, il ne peut remonter de dossier.

Bien, alors maintenant pourquoi ça marche en php : En php, on est dans le cas de figure n°1 dans tous les cas, c'est-à-dire que le serveur sait bien qu'il ne se trouve pas à la racine du compte web (répertoire httpdocs ou www). Par conséquent, dans tous les cas, il est capable d'aller chercher un fichier un dossier au-dessus.

Je ne sais pas si mes explications sont claires...

Maintenant comme solution, je te propose simplement de déplacer ton fichier CSS dans le répertoire coucou.
bonjour,
Comme le dit notre ami QuentinC, il faut dans ton include tenir compte de la position dans ton arborescence de la ou il est appelé
ex :
//racine de ton site
www.numero1.com
//dossier coucou
coucou
//dossier image
images
//et par exemple
//dossier contenant les css
ccs
//et les autres dossiers
dossier1
dossier2
...
dossierN

//dans le dossier coucou
index.php
c'est depuis la position de index.php que tu dois appeler ton css ou tes image.
donc le chemin depuis index.php(dans le dossier coucou) sera :
../css/tonfichier.css
de même pour tes images :
../images/tonImage.gif
quelque soit la position de ton include dans ton arborescence, puisque qu'il est "affiché" dans index.php, le chemin relatif doit être celui de index.php.
j'espère avoir pu t'aider
cordialement
Bonjour Smiley cligne

Finalement j'ai opté pour mettre le fichier css et le rep images de chaque dans son propre repertoire. Les fichiers PHP communs sont appelés par un "include(../$fichier)". Et c'est vraiment plus propre Smiley smile
Oui problème résolu merci Smiley smile