Probleme lors de l'affichage d'une image

Fermé
kiranis Messages postés 48 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 29 mars 2009 - 29 juil. 2007 à 13:40
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 - 29 juil. 2007 à 18:24
Bonjours, je veux afficher une image jpg stocker dans une base de donnees mais le resultat affiché est l'url de la page ou je desire l'afficher "http://127.0.0.1/", voila le code:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
header("Content-type: image/jpeg");
mysql_connect("localhost","root","");
      mysql_select_db("images");
   $result= mysql_query("SELECT nom,date,img FROM offres WHERE categorie='cliente' AND type='icone' ORDER BY date");
   while ($row = mysql_fetch_array($result))  
{
     if ( !$row[0] )
{
echo "image inconnu";
}
else
{
     $Image = $row['img']; 
     $ImageName = $row['nom'];
     echo $Image;
}
} 
readfile($Image);
?>

</body>
</html>

ça fait presque une semaine que j'ai le meme probleme et j'arrive pas a trouver une solution.
A voir également:

1 réponse

Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
29 juil. 2007 à 18:24
Salut.

Il y a quelque chose d'illogique dans ton code :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
[...]
header("Content-type: image/jpeg");
Soit le fichier est une page html, soit c'est une image. Pas les deux.

Ensuite, a quoi correspondent les champs de ta base de données nom, date et img ?
nom : le nom de l'image
date : la date d'enregistrement de l'image dans la BDD
img : l'adresse de l'image ?

Si j'ai bien compris, et que tu veux envoyer une page html affichant plusieurs images (et pas une page HTML), alors il faut que tu enlèves tout le header PHP "header("Content-type: image/jpeg");".

Et le code "readfile($Image)" revient à afficher le code de l'image dans ta page html ! Ca n'a aucun sens ! Tu peux enlever cette ligne.

Ensuite, il faut indiquer en html que tu veux afficher une image. Pour ça il faut utiliser la balise img, et pas une simple adresse.
Remplaces "echo $Image;" par "echo '<img src="'.$Image.'">';"

Et tout rentrera dans l'ordre je pense.
0