images non affichees (probleme chemin relatif)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : images non affichees (probleme chemin relatif)

par steph_o » 04 août 2005, 23:37

Je confirme que ça fonctionne pour Firefox et IE et Safari.

A plus

par Cyrano » 04 août 2005, 23:24

Effectivement, c'est une solution à laquelle je n'avais pas songé, si ça fonctionne, c'est parfait. Vérifie quand même avec différents navigateurs, mais ça devrais marcher très bien.

par steph_o » 04 août 2005, 23:16

Salut,

Je pense que j'ai trouvé la solution à mon problème.

Il s'agit de placer dans le header de la page html la balise BASE comme suit :

Code : Tout sélectionner

<BASE href="http://localhost/mon_site/html/">
Cette balise permet de définir l'URI de base du document. Ca marche très bien pour mon cas.
(dans la doc HTML, il est préciser que cette balise doit être placée avant toute balise qui utilise un lien relatif).

Donc, le chemin relatif de l'image dans ma page :

Code : Tout sélectionner

./images/mon_image.jpg
sera complété et interprété comme suit :

Code : Tout sélectionner

http://localhost/mon_site/html/./images/mon_image.jpg
Donc, Cyrano, je ne vais pas utiliser les expressions régulières pour ce cas là. Une autre fois surement.

Merci encore

(je ne passe pas encore le sujet en résolu. Si tu as une suggestion supplémentaire, n'hésites pas)

par Cyrano » 03 août 2005, 16:31

L'include_path dont je parle est une partie du chemin. Maintenant pour récuprer toutes les url dans le fichier, utilise les expressions régulières. Une petite recherche dans le forum va te donner pas mal de réponses.

par steph_o » 03 août 2005, 16:26

Excuses moi, je suis pas très clair (:?).

Une fois que j'ai récupéré le contenu de la page HTML dans le script (avec la méthode get_file_contents), je peux le modifier pour l'affichage.

Je pense m'orienter vers une modification des chemins relatifs qui sont dans la page pour les rendre relatif à l'emplacemnet du script. Mais, ça me parait un peu trop spécifique (comment trouver tous les chemins dans ma page HTML sans en oublier un seul ?).
C'est pourquoi, je voulais savoir si une méthode plus générale existait déjà.

Donc je suis intéressé par ce que tu as évoqué avec un fichier d'include_path. Peux tu me repéciser (peut être un exemple) comment procéder?

Merci d'avance

par Cyrano » 03 août 2005, 10:42

En fait, je ne peux pas changer la page HTML ...
Là tu as un problème... COmment arrives-tu à y faire exécuter un script quelconque si tu ne peux rien changer dedans ?

par steph_o » 03 août 2005, 00:19

Excuses moi Cyrano, mais je comprends pas tout à la démarche (je suis vraiment nouveau).
En fait, je ne peux pas changer la page HTML (mettons que ce soit celle d'un client).

Peux tu être plus précis ... Je suis sûr que c'est pas grand chose, mais je cale ...

Merci

par Cyrano » 02 août 2005, 23:54

Fais-toi un fichier de configuration avec un include_path sans bidouiller dans Apache et mets tes chemins relatifs avec une variable récupérée dans ton fichier de config de façon à ce que le chemin corresponde au bon chemin depuis l'adresse affichée, donc depuis ton fichier script et non depuis la page html.

images non affichees (probleme chemin relatif)

par steph_o » 02 août 2005, 23:37

Bonjour,

Je suis un petit nouveau en PHP, et je rencontre un probleme d'affichage d'images.

Le contexte :

mon_site/script/test.php
mon_site/html/ma_page.html
mon_site/html/images/mon_image.jpg

Depuis test.php, je recupere le contenu de ma_page.html avec la methode :
$page = file_get_contents("../html/ma_page.html");
Ensuite, je fais :
echo $page;
Mon probleme est que l'image mon_image.jpg contenue dans la page html ne s'affiche pas (les chemins relatifs sont par rapport à la page et non par rapport au script php).

J'ai essayé la commande chdir, mais pas de réussite.

Y a t'il quelque chose a faire (surement) dans le script pour le faire "s'executer" dans un autre répertoire?

Peut t'on configurer le serveur Apache pour qu'il connaisse les chemins des images (sorte de incl_path), et est-ce une bonne solution ?

D'avance merci pour votre aide ...