Page 1 sur 2
Afficher une image avec src="....php"
Posté : 27 avr. 2006, 07:43
par mike1155
Bonjour, voici mon problème, j'aimerai créer quelque chose du style
de façon à ce que le fichier source affiche une image différente selon la valeur du paramètre d.
Toutes les images à afficher sont déjà dans mon répertoire (donc, je ne veux pas les générer dynamiquement!).
Dans source.php, j'ai un tableau qui associe à chaque valeur de d l'image à afficher.
Ce n'est pas à proprement parlé le code php que je cherche mais plutôt la méthode (en-tête à déclarer)
Merci
Posté : 27 avr. 2006, 08:02
par Tictac
montre nous ton code , ca sera plus simple !!!
sinon beh voilà le header information si ton image est au format jpeg
header('Content-type: image/jpeg');
Posté : 27 avr. 2006, 08:20
par mike1155
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);
Posté : 27 avr. 2006, 09:25
par charabia
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]
Posté : 27 avr. 2006, 09:41
par mike1155
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!
Posté : 27 avr. 2006, 09:45
par charabia
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.
Posté : 27 avr. 2006, 09:50
par mike1155
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;
Posté : 27 avr. 2006, 10:14
par charabia
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.
Posté : 27 avr. 2006, 10:32
par mike1155
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!
Posté : 27 avr. 2006, 10:35
par charabia
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'].
Posté : 27 avr. 2006, 13:58
par guilt92
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="">';
Posté : 27 avr. 2006, 14:58
par Ryle
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 :
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

Posté : 27 avr. 2006, 17:07
par mike1155
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 :
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!
Posté : 28 avr. 2006, 16:09
par goeb
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.
Posté : 28 avr. 2006, 17:57
par mike1155
Génial...ca marche! Merci beaucoup!!!!!!
Pour info, d'après mes tests, si on ajoute
ca ne fonctionne plus!
Peu importe....merci