Afficher une image avec src="....php"

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 : Afficher une image avec src="....php"

par Hermès » 28 avr. 2006, 18:04

Personnellement je vois pas l'intérêt de faire un fichier php qui récupère le paramètre d pour renvoyer le gif dont le nom est la valeur de d avec un header qui va bien lorsqu'on peut directement mettre un lien vers le gif qui a pour nom la valeur de d (cf les posts de charabia).

par Vaedan » 28 avr. 2006, 18:00

Oublie pas le [Résolu] ;)

par mike1155 » 28 avr. 2006, 17:57

Génial...ca marche! Merci beaucoup!!!!!!

Pour info, d'après mes tests, si on ajoute

Code : Tout sélectionner

header ("Content-type: image/png"); // ou ce qui va bien
ca ne fonctionne plus!

Peu importe....merci

par goeb » 28 avr. 2006, 16:09

salut,

il suffit de faire dans ton source.php (ou afficheimage.php) :
$d = $_GET['d'];
readfile("chemin/$d.gif");
ça envoie le contenu de l'image directement au navigateur.

si ça suffit pas, ajoute au tout début de ce script :
header ("Content-type: image/png"); // ou ce qui va bien
ça devrait marcher ça. dis-nous.

par mike1155 » 27 avr. 2006, 17:07

Ton problème vient surtout du fait que la balise <img> n'est pas capable de traiter l'url que tu lui donnes... elle s'attend à trouver une image et tu lui retourne une chaine texte :)

Ce code n'est vallable que si afficheimage.php génère un flux avec le header d'une image :

Code : Tout sélectionner

<img src="http://monsite.com/afficheimage.php?p=...">
Puisque l'image existe, il te suffit de l'ouvrir directment sans passer par le fichier php : il te faut remplacer ce lien par le nom de l'image (et le chemin naturellement :))

Remplace ce code par celui que t'a donné charabia et oubli le afficheimage.php :)
Tout à fait, le problème est bien là:Ton problème vient surtout du fait que la balise <img> n'est pas capable de traiter l'url que tu lui donnes... elle s'attend à trouver une image et tu lui retourne une chaine texte :)

Mais je ne peux pas donner le chemin direct puisque l'image à afficher ne sera déterminée que lors de afficheimage.php

Le même site externe utilisant ma balise n'aura pas forcément la même image aujourd'hui que demain, donc je ne peux pas lui donner un code avec le lien de l'image en dur puisque cela dépend d'autres paramètres!

par Ryle » 27 avr. 2006, 14:58

Ton problème vient surtout du fait que la balise <img> n'est pas capable de traiter l'url que tu lui donnes... elle s'attend à trouver une image et tu lui retourne une chaine texte :)

Ce code n'est vallable que si afficheimage.php génère un flux avec le header d'une image :

Code : Tout sélectionner

<img src="http://monsite.com/afficheimage.php?p=...">
Puisque l'image existe, il te suffit de l'ouvrir directment sans passer par le fichier php : il te faut remplacer ce lien par le nom de l'image (et le chemin naturellement :))

Remplace ce code par celui que t'a donné charabia et oubli le afficheimage.php :)

par guilt92 » 27 avr. 2006, 13:58

Juste une proposition qui ne changera rien dans l immédiat mais qui risque de te simplifier la vie si tu rajoutes des cas... Au lieu de faire un if utilise directement ta variable :

Code : Tout sélectionner

echo '<img src="chemin/'.$_GET['d'].'.gif" border="0" alt="">';

par charabia » 27 avr. 2006, 10:35

C'est normal :)

Tu passes en URL la variable "p" et tu la récupères avec "d".

Utilises $_GET['p'] au lieu de $_GET['d'].

par mike1155 » 27 avr. 2006, 10:32

Voilà où j'en suis:

Sur la page du site externe, on trouvera

Code : Tout sélectionner

<a href="http://monsite.com/traitement.php?p=..."> <img src="http://monsite.com/afficheimage.php?p=..."> </a>
Si p = 1, on doit montrer 1.gif
si p = 2, on doit montrer 2.gif

Mon code de affichelmage.php

Code : Tout sélectionner

if ($_GET['d']==1) { echo '<img src="chemin/1.gif" border="0" alt="">'; } else { echo '<img src="chemin/2.gif" border="0" alt="">'; }
Mais aucune image n'apparaît! Merci pour votre aide!

par charabia » 27 avr. 2006, 10:14

if ($_GET['d']==1)
{
	echo '<img src="chemin/1.gif" border="0" alt="">';
}
else
{
	echo '<img src="chemin/2.gif" border="0" alt="">';
}
Tu peux faire avec les switch c'est plus simple.

par mike1155 » 27 avr. 2006, 09:50

Oui c'est bien ce que j'ai compris.

Si ce l'affichage se fait sur des sites externes, tu pointes dans le tag <img> l'url complet : http://...etc

Et pour afficher l'image précise c'est justement grâce à l'ID que tu passes dans l'URL.
Oui, mais je ne sais pas quel instruction employer pour afficher l'image


Le ocde plus haut fonctionne mais c'est un peu fort de devoir regénérer une image qui existe déjà, il suffit d'indiquer le nom.
Mon réel problème n'est pas dans le choix de l'image mais simplement dans l'affichage. Que doit "sortir" le code source.php?

Voilà un exemple de code qui marche pas et qui me paraît plus approprié, me manque juse la vraie instruction

Code : Tout sélectionner

if ($_GET['d']==1) {$fichier="1.gif";} else {$fichier="2.gif";} echo $fichier;

par charabia » 27 avr. 2006, 09:45

Oui c'est bien ce que j'ai compris.

Si ce l'affichage se fait sur des sites externes, tu pointes dans le tag <img> l'url complet : http://...etc

Et pour afficher l'image précise c'est justement grâce à l'ID que tu passes dans l'URL.

par mike1155 » 27 avr. 2006, 09:41

C'est dans le fichier source que tu veux afficher l'image ?

Si c'est le cas pourquoi ne pas faire tout simplement un affichage selon l'ID récupéré ? Avec un switch ou des if ?[/php]
L'image sera affichée sur des sites externes au mien et en fonction de certaines spécifications (paramètre d), ca doit être une image bien précise!

par charabia » 27 avr. 2006, 09:25

C'est dans le fichier source que tu veux afficher l'image ?

Si c'est le cas pourquoi ne pas faire tout simplement un affichage selon l'ID récupéré ? Avec un switch ou des if ?[/php]

par mike1155 » 27 avr. 2006, 08:20

Le problème c'est que je n'ai aucune idée de ce que je dois y mettre dans source.php

Je ne sais pas transmettre l'image 1.gif (comme on le fait en générant l'image)

Je voudrais faire ceci, mais je trouve assez bête de générer l'image alors qu'elle existe!

Code : Tout sélectionner

if ($_GET['d']==1) {$fichier="1.gif";} else {$fichier="2.gif";} $im = imagecreatefromgif($fichier) or die ("Erreur lors de la création de l'image"); header ("Content-type: image/png"); imagepng ($im); imagedestroy($im);