Problème pdo php
guysharony
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour a tous,
J'ai un grand problème en php l'image ne s'affiche pas quand le head change je ne sais pas pourquoi, merci d'avance pour votre aide
J'ai un grand problème en php l'image ne s'affiche pas quand le head change je ne sais pas pourquoi, merci d'avance pour votre aide
<?php
include('connect.php');
$par=$_GET['id'];
$query = $dbh->query("SELECT * FROM project WHERE id=$par");
while($article2 = $query->fetch())
{
$filename = basename($file);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch( $file_extension ) {
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg": $ctype="image/jpeg"; break;
case "jpg": $ctype="image/jpg"; break;
default:
}
$imagedata = $article2['image'];
echo $imagedata;
header('Content-type: ' . $ctype);
}
?>
A voir également:
- Problème pdo php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
Bonjour !
Peux-tu expliquer le but de ton code ?
Tu as une boucle while, donc elle va se répéter autant de fois qu'il y a d'enregistrements.
Et dedans, tu affiches le champ image de ta table puis tu définies le header comme une image.
Enfin, on renvoie le tout au navigateur. Les headers s'écrasent, c'est donc le dernier header qui est renvoyé, et les echo s'accumulent. Donc tu as une suite d'image.
Il y a plusieurs trucs qui me questionnent :
Peux-tu expliquer le but de ton code ?
Tu as une boucle while, donc elle va se répéter autant de fois qu'il y a d'enregistrements.
Et dedans, tu affiches le champ image de ta table puis tu définies le header comme une image.
Enfin, on renvoie le tout au navigateur. Les headers s'écrasent, c'est donc le dernier header qui est renvoyé, et les echo s'accumulent. Donc tu as une suite d'image.
Il y a plusieurs trucs qui me questionnent :
- header() n'est pas censé être appelé après echo (et ton fichier connect.php ne doit pas contenir de session_start() ou autre header HTTP)
- tu stockes vraiment les images en tant que telles dans ta BDD ? tu ne stockes pas uniquement les URL ?
- tu ne peux renvoyer qu'une image à la fois, il faut donc que tu arrêtes ta boucle à l'image voulue...
Bonjour,
Si tu as stocké tes images dans ta BDD (en BLOB je suppose...) il faut que tu utilises ce type de syntaxe
NB: Au passage ... pense à récupérer "PROPREMENT" tes variables AVANT de les utiliser...
ceci :
Devient :
EDIT : Je viens de voir que tu n'utilisais pas l'image issue d'une BDD .. mais d'un fichier visiblement ($filename...)
Dans ce cas... il suffit de faire :
EDIT2 : Non en fait ... tu utilises un fichier .... mais aussi un champ de ta BDD... n'aurais tu pas tout mélangé ?????
Cordialement,
Jordane
Si tu as stocké tes images dans ta BDD (en BLOB je suppose...) il faut que tu utilises ce type de syntaxe
echo "<img src='data:image/jpeg;base64,".base64_encode($tomimgage)."'></img>":
NB: Au passage ... pense à récupérer "PROPREMENT" tes variables AVANT de les utiliser...
ceci :
$par=$_GET['id'];
Devient :
$par = !empty($_GET['id'] ? $_GET['id'] : NULL;
EDIT : Je viens de voir que tu n'utilisais pas l'image issue d'une BDD .. mais d'un fichier visiblement ($filename...)
Dans ce cas... il suffit de faire :
echo "<img src='$filename'></img>":
EDIT2 : Non en fait ... tu utilises un fichier .... mais aussi un champ de ta BDD... n'aurais tu pas tout mélangé ?????
$filename = basename($file);....
$imagedata = $article2['image'];
Cordialement,
Jordane