IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Chemin absolu image et EasyPHP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Chemin absolu image et EasyPHP
    Bonjour,
    J'ai un problème pour afficher les images en chemin absolu.
    J'utilise Easyphp (dont le documentroot est: d:\www) sur un poste en windows XP.
    J'ai une image dans: c:\img1.jpg
    une autre dans: d:\img2.jpg
    et une troisième dans: d:\www\img3.jpg

    J'ai dans mon fichier: d:\www\index.html le code (adressage relatif):
    mon image s'affiche correctement.

    mais si je met le code en adressage absolu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <img src="c:/img1.jpg">
    <img src="file:///c:/img1.jpg">
    <img src="file:///C|img1.jpg"> --> comme le propose dreamweaver
    <img src="d:/img2.jpg">
    l'image ne s'affiche pas.

    Si j'attaque ma page html directement dans mon navigateur avec l'adresse:
    d:\www\index.html --> l'image s'affiche
    mais si je l'attaque au travers d'Easyphp avec l'adresse:
    http://127.0.0.1/index.html --> l'image ne s'affiche pas

    Auriez vous une solution pour afficher une image par adressage absolu au travers d'Easyphp ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi est-ce que tu veux afficher des images en dehors de l'arborescence web ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    L'image que je souhaite afficher est stockée physiquement sur un autre poste.
    J'ai créé un disque P: pointant vers ce poste.
    et tous les ordinateurs de mon réseau ont ce disque P:
    Mais pourriez vous me dire comment faire pour:
    afficher une image par adressage absolu au travers d'Easyphp ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si le serveur a lui aussi accès aux images, ca serait plus sérieux d'ajouter ce chemin dans l'arborescence d'apache.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    peux tu m'expliquer ce que tu veux dire par:
    "ajouter ce chemin dans l'arborescence d'apache" ?

    Est ce que tu veux dire copier l'image dans l'arborescence et faire un adressage relatif ?
    dans ce cas, cette solution ne m’intéresse pas, car c'est une contrainte technique que de stocker les photos sur un autre poste (sauvegarde, débit, etc).
    ou bien
    Est ce un paramètrage dans apache qui me permettrai d'utiliser un adressage relatif par un alias ?
    dans ce cas, je suis preneur de l'idée.

    Merci encore.

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    En 1er je dirais qu'il faudrait qu'on sache quel est résultat final recherché, c'est à dire si ton application Web que tu développe avec EasyPhp/DW a pour but d'être mis sur un hébergeur ou rester en local.

    Si c'est pour le mettre sur un hébergeur alors tu ferais d'office erreur en plaçant des fichiers sur des disques différents.
    Sur un hébergeur ce ne sera surement pas le cas.

    Il y a des notions que tu n'as pas encore acquises, car certes, pour "atteindre" des fichiers afin de les visualiser sur une page Web il faut effectivement comprendre ce que c'est un chemin absolu et relatif.

    Mais faut pas perdre de vu qu'un site Web est gérer par le serveur Web, et dans ton cas c'est (certainement) Apache.
    Faut savoir que lorsqu'on lance une requête HTTP, celle-ci sera avant tout interprétée par le serveur Web.
    Or, un serveur Web s'attend à avoir des requêtes HTTP du genre : -http://... blablabla ...
    et non du genre : -c:/ ... blabla ...

    En faite, lorsqu'on install EasyPhp (ou WampServeur ou autre) sur sa machine afin de dévvelopper un site Web, on est d'office dans un cas particulier.
    Non seulement le serveur Web (Apache) se trouve sur la machine, mais le navigateur qui nous sert à visualiser les choses (le HTML) lui aussi se trouve sur la même machine.

    Du coup, plus particulièrement si on débute, on a du mal à percevoir la relation client/serveur qu'il y a.
    Pourtant elle est bien présente, la particularité c'est que tout ce trouve sur la même machine.

    De plus, comme le navigateur se trouve sur la même machine, le système (l'OS, Windows XP ici) intervient aussi, ce qui ne facilite pas la compréhension de tout cela.
    En somme, quant on indique dans le navigateur (barre d'adresse) quelque chose comme c:/..., on passe outre notre site Web, et donc Apache, c'est à dire que le système comprend qu'on veut atteindre directement un fichier sur la machine.
    Chose déroutante finalement.

    Donc pour éviter toute erreur, faut faire comme si le serveur Web (Apache) se trouvait très loin (aux USA, Japon, Tombouctou, ...), bref pas sur ta même machine.
    Donc imagine que tu n'aurais qu'un seul et unique disque ou ton application tournerait et que les clients (les internautes) se trouveraient aux 4 coins du monde.


    En bref, il ne faudrait pas utiliser de chemins "physiques" (comme c:, d:, etc) mais essentiellement des URLs (comme -http://) pour atteindre les images, page Web, css, JS ...
    Apache (le serveur Web) est par défaut configuré pour que le répertoire d:www soit le ROOT, donc Apache tentera de récupérer un contenu (page Web, images, css, etc ...) dans ce répertoire lorsqu'une requête HTTP comme -http://127.0.0.1 ou -http://localhost sera lancée dans un navigateur lui même installé sur la même machine (en local).


    Je ne sais pas si j'ai bien expliqué, pas pris trop de raccourcis
    Mais bien comprendre le fonctionnement d'Apache n'est pas si simple non plus
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  7. #7
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Merci pour ton topo Run, je l'ai trouvé très clair.
    Sinon, je vais peut-être poser une question bête, mais dans le premier post, il n'y a pas une page en .php, que des pages en .html.
    A quoi sert easyphp et tout le tralala ?
    Un simple navigateur sait traiter une page en html.
    Autre chose, pour ere, il est souvent souhaitable de se faire un répertoire img à la racine de son site, et de mettre toutes les images utiles dedans.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Sinon, je vais peut-être poser une question bête, mais dans le premier post, il n'y a pas une page en .php, que des pages en .html.
    A quoi sert easyphp et tout le tralala ?
    Esprérer de nos jours créer un site Web 100% en HTML est une utopie.
    Donc oui que finalement nulle besoin dans l'absolu d'avoir un EasyPhp si on ne créé que de page 100% HTML, mais très très vite on voit que Php deviendra indispensable, y compris une Bdd (MySQL ou autre).

    C'est justement pour cette raison qu'on installe ce genre d'outil qui intègre tout : Apache, Php, MySQL
    C'est le minimum syndical.

    Puis j'ai donné les explications.
    Un site Web sera rarement installé chez soit pour le rendre accessible par le monde entier, c'est largement trop risqué, très complexe, puis même assez coûteux (faux que ça tourne 24/24 7/7).

    Pour une modique somme (voir même gratuitement) il y a des hébergeurs spécialisés dans ce domaine.
    Du coup, on ne pourra pas accéder directement à un fichier en renseignant une adresse "physique" du genre c://... car le système sera incapable de savoir où il se trouve.
    Dans tel cas ce sera même absurde.
    Si on saisi dans son navigateur une adresse comme c://truc.txt, notre PC recherchera inévitablement ce document sur notre PC, et non sur le site Web machin_chose.com.


    D'où l'invention du protocole HTTP où via un navigateur et en indiquant une URL on pourra atteindre un document HTML partour dans le monde car chaque URL est unique.
    Le principe est tout simplement le même qu'une adresse postale.
    Dans cette URL (requête HTTP) on y indique ce qu'il faut, et cela tout aussi bien en local que sur un serveur distant.
    On y indique en 1er le nom du serveur (via un DNS comme "localhost" qui correspond à une IP ici 127.0.0.1), ensuite d'autres infos qui amènera petit à petit au document voulu.

    Le principe au final est vraiment simple.
    Faut juste éviter de tout mélanger, et surtout bien percevoir qu'il y a une vrai relation client/serveur, en somme qu'il y de la distance entre ces 2 là même si tout cela se trouve sur la même machine, donc faire gaffe au piège.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci de vos réponses.
    J'ai oublié de préciser que je n'étais pas débutant et que je connaissais assez bien les notions de client et de serveur.
    Et que ma question était dans un but cas bien particulier (pas pour mettre le site en ligne ou autre).
    J'ai simplifié le problème pour vous l'exposer:
    L'image que je souhaite afficher est stockée physiquement sur un autre poste.
    J'ai créé un disque P: pointant vers ce poste.
    et tous les ordinateurs de mon réseau ont ce disque P:
    Pour Denrite: le fait qu'aucune page ne soit en php n'a aucune importance.
    Si j'attaque ma page html directement dans mon navigateur avec l'adresse:
    d:\www\index.html --> l'image s'affiche
    mais si je l'attaque au travers d'Easyphp avec l'adresse:
    http://127.0.0.1/index.html --> l'image ne s'affiche pas
    Merci de vos réponses génaralistes, mais j'aurai besoin d'une réponse précise à une question précise:
    Pourriez-vous me dire comment faire pour:
    afficher une image par adressage absolu au travers d'Easyphp ?

  10. #10
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    http://127.0.0.1/index.html --> l'image ne s'affiche pas
    Vu que tu nes pas débutant, tu dois savoir que pour le navigateur parvienne à atteindre l'image la problématique est exactement la même que pour atteindre cette même page index.html.

    Donc faut voir quelle est la valeur de l'URL que tu as indiqué pour l'image, c'est à dire : <img src="URL pour cette image" />, et non la page HTML.
    Une image est un fichier à part entière, au même titre qu'un fichier HTML.


    Par ailleurs, je ne vois vraiment pas l'intérêt d'indiquer un chemin "physique" pour atteindre un fichier (HTML, Php, image, peu importe) via un navigateur alors qu'on créerait un site Web (j'entends par là, via un serveur Web), quelque soit le cas de figure (local, distant).
    Pour ma part c'est : soit l'un, soit l'autre.
    Donc quelque part je ne vois aucun intérêt d'éparpiller les fichiers sur plusieurs disques, car au pire ils seront inconnus du serveur Web Apache (donc impossibilité d'afficher certains fichiers), au mieux, cela va complexifier la gestion de ces fichiers (coté d'Apache ou autre).

    A mon sens il y aurait quelque chose à revoir dans la gestion de tout cela.


    Pourriez-vous me dire comment faire pour:
    afficher une image par adressage absolu au travers d'Easyphp ?
    Ta question n'est pas si précise que ça, et je l'ai pourtant expliqué.
    Ne suffit pas de dire "absolu", car il y a (au moins) 2 moyens radicalement différent d'atteindre un fichier : soit une adresse "physique" (donc lié à un disque, donc indirectement lié à une machine), soit une adresse URL, qui là n'est pas liée à une machine mais au réseau ( Internet ou intranet, etc ...).
    Le fond de ton problème est là.
    Ce qui veut dire qu'il y a une adresse "physique absolue" et une adresse "URL absolue".

    Si tu comprends ces points là, tu sauras (théoriquement) quoi faire, donc comprendre ton problème.
    L'autre fond de ton problème viendrait à mon sens du choix de la structure de ton application Web, entre autre dans la manière où sont placés les divers fichiers qui doivent être affichés (sur plusieurs disque).
    A mon sens tu risque fort de perdre tout le coté dynamique que Php pourrait apporter.

    Par ailleurs, sais tu qu'il est possible de créer un site Web non pas dans le d:/www mais ailleurs, comme par exemple dans p:/.
    En somme, que le disque "P" serait la racine du site Web.
    Faut voir si cela peu se concevoir ainsi.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos réponses.

Discussions similaires

  1. [Image] Chemin absolu d'une image
    Par El Saigneur dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 15/10/2008, 12h15
  2. [HTML] chemin absolu d'une image
    Par cbv38 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 15/07/2008, 11h54
  3. Réponses: 15
    Dernier message: 22/10/2007, 11h14
  4. [HTML] Chemin absolu d'une image
    Par diaboloche dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/07/2006, 21h16
  5. FIREFOX chemin absolu vers images (fctionne pas??)
    Par valal dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/10/2005, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo