{MySQL} insérer une image avec PHP

Fermé
whypee - 30 nov. 2009 à 00:25
 le père - 30 nov. 2009 à 09:13
Bonjour à tous,

Je cherche vainement à insérer une image dans une page PHP qui présente les affiches et une critique des films que j'ai vus.
Avec la puissance de PHP, je ne comprends pas pour quelle raison je n'y parviens pas !
Mes pages PHP sont dans un répertoire, les images sont dans un autre (images/actus/cinephp), les deux étant dans le répertoire www.
J'essaie la ligne de commande suivante, mais je n'obtiens qu'un carré (le lien est cliquable comme je le souhaite) et donc pas l'image.
Voici la ligne (sachant que le champ "avis" est une image téléchargée lors du remplissage de mon champ qui est de type TINYBLOB) :

<?php echo '<img src=\"http://www.monsite.com/images/actus/cinephp/'.$avis.'">'; ?>

J'ai également essayé précedemment :
<?php echo $donnees['avis']; ?>

Aucune des deux ne fonctionne. Quelqu'un pourrait-il m'en donner la raison ?
A voir également:

2 réponses

whypee Messages postés 10 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 18 avril 2020
30 nov. 2009 à 00:27
Merci pour le temps que vous voudrez bien passer à me répondre et... bonne nuit !!!
0
Bonjour

La raison, c'est que tu ne reproduis pas avec php ce que tu aurais fait directement en HTML. Dans aucun de deux cas.
Pour inclure une image dans une page HTML, la manière standard consiste à mettre une balise img avec une URL qui te renvoie une image.
Dans ta première tentative
<?php echo '<img src=\"http://www.monsite.com/images/actus/cinephp/'.$avis.'">'; ?> , tu as d'abord un backslash inutile danst le ", ensuite tu as une variable $avis qui vient on ne sait d'où. Car ce n'est pas parce que tu as un champ qui s'appelle avis que tu vas avoir une variable $avis. Il faudrait que $avis contiennent le nom d'un fichier ou d'un script qui renvoie une image.
Dans ta deuxième tentative, tu essayes d'envoyer directement les données au client : tu dois avoir de jolis hiéroglyphes. Tu envoies une suite de caractères au client, comme tu ne lui as rien dit pour qu'il sache que c'était une image, il affiche une suite de caractères. Toi tu sais que tu voudrais une image, mais lui il n'a aucune raison de le deviner.
Mets toi toujours du point de vue du client : qu'est-ce qu'il faut qu'il reçoive pour afficher une image ? Si tu as quelques notions de HTML, tu dois le savoir. Ensuite, demande-toi comment lui envoyer ça grâce à php.
Le seul détail que tu ne connais peut-être pas, c'est que pour que le client interprète des données comme une image, il faut lui envoyer un header("Content-type: image/png"); (/png à remplacer par /gif ou /jpeg ou /bmp...). Mais attention, tu ne dois alors envoyer QUE l'image.
0