Sous répertoires et dossier image

WRInaute passionné
J'arrive pas à saisir comment m'y prendre pour cette histoire de dossier images et de sous repertoires. Je m'emmele les pinceaux. :oops:

J'ai un kit graphique donc toutes les images menu sont communs sur chaque page. (Je n'utilise pas de include php. pour les menus).

Imaginons j'ai cette arborescence:

-Index
-Images
- bowling > apprendre > regle-de-jeu.php
- formule1> grand prix> interviews.php
- motogp> courses >resultats.php

Dans le fichier regle-de-jeu.php, pour afficher une image "menu-gauche.jpg" qui se trouve donc dans le fichier "images" plus haut dans l'arborescence, je met quoi à la place des "..." ci dessous ?

<img src=" ..../menu_gauche.jpg">

8O
 
WRInaute occasionnel
tu vas chercher ton image en mettant ton src="../../images/menu_gauche.jpg"

Autrement dit pour chaque dossier remonté tu met des "..."

Enjoy
 
WRInaute accro
Tu peux aussi utiliser l'URL absolue, ça marche partout, sous répertoire ou sous sous sous répertoire, ça simplifie la vie ..
Code:
<img src="/images/menu_gauche.jpg">
 
WRInaute passionné
En fait je m'embrouille avec le fait de "remonter" plutot que "descendre" une arborescence. Je m'embrouille là avec cette histoire de sens. Bon je vais essayer avec le / absolu mais dans ce cas il peut remonter tres loin sur mon DD non
 
WRInaute passionné
ah c'est peut etre ca le probleme je n'ai pas crée d'index encore ? je bidouille une page test.php en ce moment. Je vais voir car là ca marche pas..
 
WRInaute passionné
pour l'instant en fait je n'ai que 2 pages .php de créer sur mon DD avec une architecture en sous dossier. Je n'ai pas créer de site en soit..

et ca marche pas sous dreamwaver en tout cas mes images n'apparaissent pas.. je suis une quiche c'est pas possible
 
WRInaute impliqué
J'avoue :D

Pour l'url absolue, essaie <img src="http://www.example.com/images/" alt="" />.

Edit : le site est pas en ligne ? Donc il faudrait que tu utilises une variable php ($DOCUMENT_ROOT je crois) si tu veux utiliser l'adressage absolu.
<img src="<?php echo $DOCUMENT_ROOT; ?>/images/truc.jpg" alt="" />
 
WRInaute passionné
parfois les choses les plus simples m'embrouille j'ai tendance à me compliquer la vie lol
ps mon site n'est pas en ligne pour l'instant en fait je n'ai que 2 pages .php de créer sur mon DD avec une architecture en sous dossier. Je n'ai pas créer de site en soit..
 
WRInaute discret
utiliser un fichier css ça va te débarrasser de ce souci
tu n'aura plus besoin a définir le chemin de tes images a chaque fois, tu doit seulement changer le chemin dans la ligne qui inclue la feuille de style css et voila
 
WRInaute passionné
Schwarzer Stern a dit:
J'avoue :D

Pour l'url absolue, essaie <img src="http://www.example.com/images/" alt="" />.

Edit : le site est pas en ligne ? Donc il faudrait que tu utilises une variable php ($DOCUMENT_ROOT je crois) si tu veux utiliser l'adressage absolu.
<img src="<?php echo $DOCUMENT_ROOT; ?>/images/truc.jpg" alt="" />

oula ok comment veux tu qu'un neophyte sache celà :lol:
le probleme vient de là alors.. le fait que mon site ne soit pas en ligne
 
WRInaute accro
Ah oui en effet si le site n'est pas en ligne, et si tu n'utilises pas un service "web" (easyPHP, wamps) en local sur ton poste, ca va pas très bien marcher, de mettre les URL en absolu ...
 
WRInaute impliqué
Euh en fait j'ai peut-être un peu compliqué la chose aussi hein ^^
Mais dans 90% des cas tu n'as pas besoin d'indiquer une URL absolue, si on pouvait avoir accès à tes fichiers ça nous aiderait :)
Pour le CSS si j'ai bien compris il s'agit d'un kit graphique donc le modifier :s
Par contre...
J'ai un kit graphique donc toutes les images menu sont communs sur chaque page. (Je n'utilise pas de include php. pour les menus).
À mon avis, tu vas avoir un gros problème si tu continues dans cette voie, ça pourrait vite devenir ingérable. Corrige ça et ça te simplifiera considérablement le boulot !

Bon courage
 
WRInaute passionné
OK c'est tout bon J'ai mis tout ca en ligne et ca marche avec le / absolu (tranquille comme ca)
..en fait j'avais compris mais je pensais que sur mon DD ca se passait comme sur le serveur hebergeur mais non.
ouf je ne suis pas une quiche.. juste un crack heu un cake lol
 
WRInaute passionné
À mon avis, tu vas avoir un gros problème si tu continues dans cette voie, ça pourrait vite devenir ingérable. Corrige ça et ça te simplifiera considérablement le boulot !

Bon courage

L'avantage du php include menu c'est juste pour éviter, lors d'editions de rubriques, de reprendre chaque page une à une ? .. mais mon menu ne devrait pas évoluer.

OU est ce que c'est "plus propre" (fait gagner du temps d'affichage à la page par ex.) de faire un menu avec la fonction php include ?

Sinon dans mon menu il pourrait y avoir une section script newslettre (voir script forum) ET aussi un script adsense et un autre script regie marque blanche.
Est ce que c'est possible d'intégrer tout ca dans une fonction include ? Ca va marcher sans probleme .. ?
Est ce que ca ne risque pas de perturber le tracking affiliation aussi ?
 
WRInaute impliqué
Est ce que c'est possible d'intégrer tout ca dans une fonction include ? Ca va marcher sans probleme .. ?
Est ce que ca ne risque pas de perturber le tracking affiliation aussi ?
Normalement non, pas de problème de ce genre.

L'avantage du php include menu c'est juste pour éviter, lors d'editions de rubriques, de reprendre chaque page une à une ? .. mais mon menu ne devrait pas évoluer.

On dit ça :D Non, sérieusement, si tu n'as que 10-20 pages à modifier ça va encore, après ce sera plus lourd. Une modification du design, un lien à ajouter ou une URL à corriger, ça va vite être pénible sur 50 pages (quoi que, sur un site comme ça, j'utilise une fonction PHP qui remplace l'expression donnée par une autre sur toutes les pages ^^)

Bonne chance pour la suite !
 
WRInaute passionné
merci pour tous ces renseignements :)

sinon meme question mais au niveau de mon fichier footer.php
..je dois le mettre au niveau du repertoire racine index.php ou bien le répéter à tous les sous répertoires ?
 
WRInaute impliqué
S'il n'est que dans le répertoire racine, il faudra jouer avec des "../" dans tes include. Si tu le copies dans chaque répertoire, ce sera moins propre et moins gérable.
 
WRInaute passionné
ok donc pour avoir en valeur absolu, je met ca ?

<?php include ('/footer.php'); ?>

edit: ca doit pas etre là qu'il faut le mettre le / apparement :P
 
WRInaute impliqué
Euh, aucune idée (à part le document_root de tout à l'heure mais je n'ai toujours pas vérifié). Mais ne néglige pas la puissance des url relatives ^^
 
WRInaute passionné
voilà ce qui s'affiche:

Warning: main(/footer.php) [function.main]: failed to open stream: No such file or directory in /homez.144/annuairely/www/bowling/regles-de-jeu/exemple.php on line 413
 
WRInaute impliqué
Alors tu remplaces <?php include ('/footer.php'); ?> par <?php include ('../../footer.php'); ?>
Tu vois bien que l'erreur ici est qu'il ne trouve pas footer.php dans regles-de-jeu
Il faut fonc remonter de deux répertoires (2*"../") pour localiser le fichier à inclure.

Edit :
ou bien, pour ne pas avoir à revoir les ../ à chaque changement de rép :
Code:
$remonter=$_SERVER["DOCUMENT_ROOT"];
include($remonter ."/footer.php");
 
WRInaute passionné
aucune des 2 solutions ne fonctionnent..

c'est dingue cette histoire. Meme avec / absolu ca devrait marcher puisque j'ai fait la meme demarche qu'avec mon dossier image.
 
WRInaute impliqué
Ne le prends pas mal mais footer.php est bien placé dans le répertoire racine qui contient bowling et apprendre ?
Si tu places un fichier gaga.php dans ce répertoire racine, en mettant simplement :
<?php include("footer.php"); ?>
Tu obtient quoi ?
(on va finir par trouver)
 
WRInaute passionné
merci pour l'insinuation du nom de dossier LOL

j'ai essayé là oui ca marche dans ce cas,
normal il est au meme niveau..

le probleme visiblement c'est le chemin d'acces. Je me demande si on peut ajouter "/../.." dans ce code php ?
 
WRInaute impliqué
C'est pas /../.. mais ../../, ça a une importance si jamais ce n'est pas une faute de frappe dans ton post.

Autre test : crée le fichier bowling/regle-du-jeu/gogo.php et met simplement dedans :
<?php include("../../footer.php"); ?>

Et indique le résultat ici ^^
 
WRInaute passionné
voilà exactement ce que j'ai mis:

<?php include ('bowling/regles-de-jeux/footer.php'); ?>

le fichier footer est au meme niveau que le dossier bowling

bon sang ca devrait marcher grrr
 
WRInaute passionné
Autre test : crée le fichier bowling/regle-du-jeu/gogo.php et met simplement dedans :
<?php include("../../footer.php"); ?>

La ca marche !!
d'ailleurs ca marche que si je met ..
si je met 3 points ... ca marche pas
 
WRInaute passionné
Conclusion ?

Ce qui marche:
<?php include("../../footer.php"); ?>

Ce qui marche pas:
<?php include("../footer.php"); ?>
<?php include("/footer.php"); ?>
<?php include("bowling/regles-de-jeux/footer.php"); ?>

:roll:
 
WRInaute impliqué
Bah si tu mets pas ce que je te dis aussi :D
Ton code placé dans "regles-de-jeux" :
Code:
<?php include ('bowling/regles-de-jeux/footer.php'); ?>
Va rechercher le fichier bowling/regles-de-jeux/bowling/regles-de-jeux/footer.php .

Code:
<?php include ('../../footer.php'); ?>

Les "../" c'est pas pour remplacer par les noms de rép hein ^^
 
WRInaute passionné
Comment c'est possible que: <?php include("../../footer.php"); ?> marche
et que <?php include("bowling/regles-de-jeux/footer.php"); ?> marche pas

.. en partant du principe inespéré que je n'ai pas fait de faute de retranscription du nom des dossiers et que mes dossiers sont bien présents au bon endroit !
 
WRInaute impliqué
Parce que ça n'a rien à voir ^^

../ = remonte d'un dossier dans ton arborescence. Si tu es dans "bowling/regles/", ça te remonte à "bowling".
"bowling/regles-de-jeux", si tu es dans "bowling/regles/", t'envoies à "bowling/regles/bowling/regles-de-jeux"
 
WRInaute passionné
bon je vais m'en tenir à ../.. alors et je varierai le nombre de ../ en fonction du niveau d'arborescence de mon sous rerpertoires.

que dire ? merci à toi simplement pour ton aide :)
 
WRInaute passionné
je me disais aussi comment on peut supporter autant de questions aussi chiantes LOL
ce qui n'enleve rien à ton geste :)
 
WRInaute passionné
Pour info, voici le code exact qui permet d'activer la commande include à partir d'un sous repertoire, le fichier include footer.php etant lui situé à la racine.

<?php include ($_SERVER['DOCUMENT_ROOT'].'/footer.php'); ?>

Voilà
 
WRInaute discret
Ton chemin absolu sera /dossier1/sommaire.php
Tu peux avoir deux fichiers portant le même nom mais pas au même endroit.
 
WRInaute passionné
En fait si..

mon interrogation etait si je met comme url juste /sommaire.php sans preciser de dossier avant, il va demarrer la recherche au niveau de la racine et il va se trouver confronter avec deux fichiers sommaire.php . Lequel il prend dans ce cas ?

de toute facon, il vaut mieux preciser le chemin comme dis plus haut c'est sur mais ca m'intrigue.. quel choix il fait entre les deux fichiers sommaire.php lorsque il n'est rien d'autre precisé que /sommaire.php ?

:p
 
WRInaute passionné
www
-index.php
-repertoire1>sommaire.php
-repertoire2>sommaire.php

dans un fichier situé quelquepart j'entre ce lien:
/sommaire.php

Il me renvoie où ?
 
WRInaute impliqué
Au fichier "sommaire.php" que contient le répertoire "quelquepart" ?
S'il existe des cas où "/" vaut "retour à la racine", ça renverra à www/sommaire.php

Où j'ai manqué un truc (c'est possible à ctheure) ^^
 
WRInaute passionné
Schwarzer Stern a dit:
Au fichier "sommaire.php" que contient le répertoire "quelquepart" ?
^

non ca ce serrai dans le cas ou j'ai ecrit sommaire.php sans le /

il va renvoyer sur sommaire.php en partant de la racine mais lequel je sais pas comment il choisit ..
 
WRInaute impliqué
Si vraiment il part de la racine, il va tout simplement choisir l'éventuel fichier sommaire.php existant à la racine (au niveau d'index.php dans ton exemple).
 
WRInaute passionné
mais s'il n'existe pas de sommaire.php au niveau de l'index, il va bien alors chercher plus en profondeur et va tomber soit sur repertoire1>sommaire.php ou sur repertoire2>sommaire.php

moi je vois ca comme ca j'dis p'etre une connerie aussi :p
 
WRInaute impliqué
Mais non c'est jamais con une question :roll:
Si le fichier n'existe pas, le serveur renverra une erreur 404, ou comme tu l'as vue précédemment une erreur PHP, etc.

[Dans certains cas, si un fichier quasi-homonyme existe dans le même répertoire que celui que tu tentes d'atteindre, et que le fichier que tu tentes d'atteindre est introuvable, le serveur pourra de lui-même rediriger vers ce quasi homonyme (ex. : de test.php à tests.php)] <- pour embrouiller un peu plus
 
WRInaute passionné
mdr
le fichier existe s'il est placé dans repertoire1 ou/et repertoire2.. alors si je fais une demande en valeur absolue, je vois pas pourquoi il n'irait pas chercher en profondeur jusque là bas .. la question est de savoir s'il va choisir celui issu du repertoire1 ou repertoire2.

Le / ne veut pas dire qu'il se cantonne uniquement à la racine du site, mais qu'il commence à sonder à partir de la racine et qu'il cherche en profondeur. Où bien j'ai rien compris une fois de plus lol
 
WRInaute discret
Si, le / veut dire qu'il cherche à la racine.
Il ne va pas aller fouiller dans les sous-répertoires. Tu dois lui indiquer le sous-répertoire concerné ou sinon il renverra une erreur 404.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut