Pb include() et liens

Pb include() et liens - PHP - Programmation

Marsh Posté le 13-03-2004 à 19:08:42    

Bonjour a tous,
 
Voila g un probleme un peu bizarre...
Je fais des include dans chacune des pages de mon site pour inserer ma banniere et mon menu horizontal.  
POur ordonner mes pages j'ai créé des dossiers pour chacune des categories de mon site... Erreur... maintenant mon lien vers l'image de ma banniere n'est pas viable: l'image et recherchée dans un dossier image de chaque categorie de mon site alors que le dossier image d'origine se situe a la racine de mon site...
Tout ceci n'est peut etre pas tres claire a comprendre... désolée...
Je pensais avoir trouvé une solution en utilisant la var $_SERVER["Documents_root"] mais ca ne marche pas car le chemin devient: "c:/program files/..." et non http://localhost...
 
Encore desolée pour cette description fouillie, mais si quelqu'un a une idée sur ce probleme ou a dejà rencontre ce probleme... Merci d'avance.
 
Celinou

Reply

Marsh Posté le 13-03-2004 à 19:08:42   

Reply

Marsh Posté le 13-03-2004 à 19:56:06    

C'est quoi comme server apache? distant ou local?
 
edit: non rien


Message édité par Master p le 13-03-2004 à 19:56:36
Reply

Marsh Posté le 13-03-2004 à 20:00:04    

c'est pas un probleme de php, mais un probleme de html. Il faut que tu mettent  
<img src="image/ton_image.truc">
met nous le code de ta page que tu inclu, on comprendrai mieux.


Message édité par fabien le 13-03-2004 à 20:00:17

---------------
Découvre le HFRcoin ✈ - smilies
Reply

Marsh Posté le 13-03-2004 à 20:06:36    

En fait, ce que j'en ai compris, c'est le problème habituel du chemin relatif quand on utilise des includes.
Maintenant, pour avoir "c:\program files\..." c'est que le site est vu en local, faut voir si c'est vraiment ce qu'elle (??) veut

Reply

Marsh Posté le 13-03-2004 à 20:07:55    

En fait la page que j'inclus se situe a la racine de mon site d'ou elle va recuperer l'image (src="images/mon_image.gif" ). Le probleme lorsque l'include est realisé dans une page qui se trouve dans un autre dossier, c'est que l'image n'a plus le meme lien...  
Donc galere, obliger de mettre des liens en dur...
 
Celinou

Reply

Marsh Posté le 13-03-2004 à 20:08:04    

celinou a écrit :

Bonjour a tous,
 


 
il faudrait que tu nous décrive davantage l'archi de ton système de fichiers  ;)

Reply

Marsh Posté le 13-03-2004 à 20:10:01    

Le probleme c'est que le chemin du site en ligne et celui pour le developpement n'est pas le meme.  
 
Celinou

Reply

Marsh Posté le 13-03-2004 à 20:15:26    


racine
  |---|
      |- /images
      |- /dossier_1
      |     |- page_qui_inclus.php  
      |- /dossier_2
      |- page_a_inclure.php


 
La page page_qui_inclus.php inclus la page page_a_inclure.php qui a des references vers le dossier image.
 
merci encore
 
Celinou

Reply

Marsh Posté le 13-03-2004 à 20:20:19    

oki,  
 
page_qui_inclus.php  est -elle déjà incluse ou non ? si non, alors  
 
<img src="../page_a_inclure.php ">
 
et si elle est déjà incluse alors l'inclusion doit se faire depuis la page 'racine'

Reply

Marsh Posté le 13-03-2004 à 20:22:55    

tu fais reference à une page php dans une balise img [:autobot]
 
edit: c'est page_à_inclure.php qui fais reference à l'images dans le dossier images, et cette image n'est pas retrouvé par la page page_qui_inclus.php


Message édité par uriel le 13-03-2004 à 20:24:02

---------------
IVG en france
Reply

Marsh Posté le 13-03-2004 à 20:22:55   

Reply

Marsh Posté le 13-03-2004 à 20:48:18    

uriel a écrit :

tu fais reference à une page php dans une balise img [:autobot]


 
C'est possible hein, même si c'est pas d'une utilité quelconque ici :)
 
Mais Celinou, je comprends pas bien ton problème, avec $_SERVER['HTTP_HOST'] tu as la bse nécessaire pour indiquer le chemin vers tes images non ?
 

Reply

Marsh Posté le 13-03-2004 à 21:22:01    

uriel a écrit :

tu fais reference à une page php dans une balise img [:autobot]


et alors ?  :heink:

Reply

Marsh Posté le 13-03-2004 à 21:37:54    

simogeo a écrit :


et alors ?  :heink:  


ben pour moi <img ... /> == images  [:spamafote]


---------------
IVG en france
Reply

Marsh Posté le 13-03-2004 à 21:41:42    

uriel a écrit :


ben pour moi <img ... /> == images  [:spamafote]  


 
<img.../> === content/type image tu veux dire :)
 
Un script php qui renvoit une image (genre ce que font GD ou jpgraph) peut parfaitement être placé dans une balise <img>


Message édité par naceroth le 13-03-2004 à 21:42:07
Reply

Marsh Posté le 13-03-2004 à 21:45:44    

naceroth a écrit :


 
<img.../> === content/type image tu veux dire :)
 
Un script php qui renvoit une image (genre ce que font GD ou jpgraph) peut parfaitement être placé dans une balise <img>


 
je savais pas :jap: (et oui je voualis dire img -> MIME image)


---------------
IVG en france
Reply

Marsh Posté le 13-03-2004 à 21:55:08    

celinou -> tu utilises des chemins absolus, toujours par rapport à ton root non? Tu devrais plutôt faire des chemins relatifs, je parie que ça résoudrait tes problèmes.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 14-03-2004 à 17:22:33    

Désolée pour cette absence...
drashe, je ne p pas utiliser de chemins relatifs car le chemin vers mon image varie selon ou se situe la page dans laquelle je fais un include.
Je pense q je n'utilise pas les 'include' comme il faut et surtout PHP. En fait je crée des pages dans lesquelles je fais toujours le meme include. Peut etre devrai-je conserver une page index dans laquelle je ferai des include de toutes les autres pages selon la valeur d'une variable passée dans l'URL?  
 
naceroth, j'ai testé la variable $_SERVER['HTTP_HOST'] , le pb c'est que le serveur qui heberge le site a une URL de deux kilomètres de long apres la racine... Donc toujours le meme pb , je ne pourrai pas conserver les memes liens entre la prod et les upload sur le serveur...
Franchement je crois q je vais capituler et mettre toutes mes pages dans le meme repertoire (bonjour le dawa!)... J'aurai toujours le meme probleme avec la partie intranet du site qui se trouve dans un fichier ssl-dir.
 
Merci.
 

Reply

Marsh Posté le 14-03-2004 à 17:28:01    

J'ai eu un problème de ce genre: sur mon site, mon menu principal est défini dans un include, mais l'include est appelé depuis différents endroits. Dans ce cas, je passe un argument à la fonction qui m'affiche mon menu, lequel indique de combien de niveaux je dois remonter dans mon arborescence. Cette astuce me permet de toujours donner le bon lien pour l'index du site, et d'avoir la même version de mes pages que je sois en local (mon site n'est qu'un projet parmi d'autres, donc pas dans le rootsite) ou sur un serveur distant quelconque.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 14-03-2004 à 17:40:20    

Tu utilises quoi comme fonction pour afficher ton menu?
Là je m'étais résigner a recreer sur ma machine la meme arborescence que sur le serveur...ça fais vraiment bidouille, j'aime pas ça...

Reply

Marsh Posté le 14-03-2004 à 17:54:51    

si tu n'as qu'un seul répertoire images, tu mets le lien comme ça :  
 
<img src="/images/tonimage">

Reply

Marsh Posté le 14-03-2004 à 17:57:09    

bin j'utilise une bête fonction que j'ai créée, cette fonction affiche mon menu, et elle reçoit un path en paramètre (souvent "../", sinon "./", lequel indique le répertoire courant).
 
ratibus> mauvaise idée, ton site n'est pas forcément dans le root, les chemins absolus, c'est mal.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 14-03-2004 à 17:58:10    

En fait je fais des include dans des pages qui se trouve dans des dossiers differents donc le lien vers mon image est voué a changé tout le temps.

Reply

Marsh Posté le 14-03-2004 à 18:05:26    

chuis pas sûr d'avoir compris [:gratgrat]
 
suivant le site sur lequel tu poses tes pages, le répertoire d'images n'est pas au même endroit [i]par rapport [i] à ton include?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 14-03-2004 à 18:09:57    

j'ai capitulé j'en peux plus... j'ai recréer la meme arborescence sur ma machine que sur le serveur.
Sinon mon repertoire d'images et bien toujours au meme endroit (a la racine de mon site).
Merci quand meme pour votre aide. je pense que c'est un probleme de conception de mon site à la base.
 
Celinou

Reply

Marsh Posté le 14-03-2004 à 18:12:42    

je crois aussi :sweat:
 
si tu as la même arborescence, un chemin relatif doit fonctionner dans tous les cas ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 14-03-2004 à 18:15:29    

Merci beaucoup pour votre aide :hello:  
 
Celinou


Message édité par celinou le 14-03-2004 à 18:16:28
Reply

Marsh Posté le 14-03-2004 à 20:35:32    

En fait, c'est le même problème qui revient souvent.
Tes include() peuvent être appelés par la variable $_SERVER['DOCUMENT_ROOT']
 


<?
define("PATH", $DOCUMENT_ROOT.'/');
include(PATH."pageàinclure.php" );
?>


 
Pour les images, c'est un autres problème :
Soit tu tentes le chemin absolu  


<img scr="http://www.tonsite.com/image.jpg>


ou la construction d'une variable qui retrouve le chemin relatif à partir du $_SERVER['PATH_INFO']


// on cherche le chemin relatif
$path = '';
$chemin = $PATH_INFO;  
do  {
$chemin = strstr(chemin, '/');
$path = '../'.$path;
}
while (!($chemin == ''));
define("PATH2", $path);


et pour  appeler l'mage ou le css


<img scr="<? echo PATH2; ?>image.jpg>

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed