Pb affichage Image JPEG

Répondre
LA GLOBULE
le 04/01/2009 à 01:55
LA GLOBULE
Et si tu vas à l'URL photo.php?id= dans ton navigateur, et que tu affiches la source HTML, que vois tu ? Normalement, tu devrais y voir des erreurs PHP.
Gilou53
le 04/01/2009 à 12:33
Gilou53
Il n'y a pas de code source qui s'affiche car mon fichier est en php.
Est-ce que mon Pb vient du fait qu'il n'y a pas d'HTML avec mon source PHP ??
moogli
le 04/01/2009 à 14:54
moogli
salut,

tu peut nous faire un wall avec le code du fichier image (le fichier php) et le bout de code HTML qui l'utilise ?

sans ce code on ne pas y voir clair !

@+
Il en faut peu pour être heureux !!!!!
Gilou53
le 04/01/2009 à 18:33
Gilou53
EUREKA !!! ça marche.

Ci joint mes 2 sources: accesbdd.php pour l'exécution de la requête de recherche et photo_v1.php pour l'extraction de la photo.
<?php

include("connection.php"); //Appel du fichier de connection à la base de donnée

//Déclaration du critére de recherche qui sera utilisé dans la requête
$critere = strtoupper(htmlspecialchars($_POST['Nom_Recherche']));

{
// Creation et envoi de la requete
$requete = "SELECT ID_PERSONNE,Prenom,Telephone,Photo from client WHERE nom=\"" . $critere . "\"";

// Resultat de la requête
$result = mysql_query($requete);

{

echo "</br>"; // 3 sauts de lignes
echo "</br>";
echo "</br>";

while($col = mysql_fetch_row($result))
{
$ID_PERSONNE = $col[0];
$Prenom = $col[1];
$Telephone = $col[2];
$Photo = $col[3];

echo ("" . $critere . ", " . $Prenom . " au " . $Telephone . "\n"); //Affichage du Nom, Prenom et télephone de la personne recherchée
echo "</br>";
echo "</br>";
if(isset($_POST['Photo'])){ //On teste si le checkbox de demande de photo est coché.
//Si checkbox photo cochée,
//On appele le script "photo.php" pour extraction et affichage de la photo de la personne recherchée
echo "Sa photo:";
echo "</br>";
echo "<img src=\"photos_v1.php?id=".$col[0]."\"> </a></br>";
}
}
}
}

// Deconnexion de la base de donnees
mysql_close();

?>

<?php
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);

include ("connection.php"); //Appel du fichier de connection à la base de donnée

//Définition de la requête:
$req = "SELECT ID_PERSONNE,Photo FROM client WHERE ID_PERSONNE = \"".$id."\"";
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
header('Content-type: image/jpeg'); //On spécifie que le type d'image est au format JPEG.
echo $col[1];


}
else
{
echo "Mauvais id d'image";
}
?>

Je pense que mon Pb venait d'un erreur de syntaxe dans mes fichiers PHP.
Dans ma démarche, j'ai également vérifié que mes photos s'affichaient correctement sans passer par MySQL. J'ai fait un simple lien sur une photo jpeg.
Malheureusement, je ne sais pas où j'ai fais une erreur.
Merci à tous de votre aide.

smileysmiley
LA GLOBULE
le 04/01/2009 à 20:05
LA GLOBULE
PS : quand je disais de regarder le code source, je parlais de la source HTML, genre Menu Affichage > Code source de la page (sous Firefox).

Normalement, tu aurais du voir tes erreurs PHP.
Gilou53
le 04/01/2009 à 20:09
Gilou53
Hello La Globule,

J'avais bien affiché le source depuis le navigateur, mais il n'y avait aucune erreur.smiley
Cela me gêne car je ne sais pas d'où venait le PB.smiley

Penses-tu que mon Pb est résolu à la vue des codes ?

Merci et @+
Darkendorf
le 26/05/2009 à 16:44
Darkendorf
Bonjour,

Je me permet de déterrer ce topic, car j'ai exactement le même problème...

J'ai eu beau suivre plusierurs tutoriels, mettre mon image manuellement dans un dossier, l'enregistrer en base, convertir en hexadécimal... bref c'est à l'affichage que tout se passe.

<?php
require_once('Connections/conn.php');
mysql_select_db($database_conn, $conn);
if(isset($_GET['img']) && is_numeric($_GET['img']))
{
$sql = "SELECT id_image, image FROM images WHERE id_image=".mysql_real_escape_string(trim($_GET['img']));
$result = mysql_query($sql);
$res= mysql_fetch_row($result);
header('Content-type:image/jpeg');
//header("Content-Transfer-Encoding: binary");
$image = file_get_contents($stock.$res[0].'_'.$res[1]);
echo $image;
}?>


j'obtiens comme résultat un image ayant comme contenu et dimensions ce texte : http://localhost/img.php?img=2

un clique droit dessus me dit que mon image fait 0px X 0px redimensionnée aux dimensions du texte et faisant le poids normale de mon image !!

le code source de la page (généré par le navigateur) :
<html>
<body>
<img src="http://localhost/img.php?img=2" alt="http://localhost/img.php?img=2"/>
</body>
</html>


je m'arrache les cheveux depuis deux jours... il semblerait que quequechose d'autre entre en compte, un élément de configuration ou autre chose...

Merci d'avance pour toute piste !
Darkendorf
le 26/05/2009 à 17:32
Darkendorf
Fantastique !

Alors mon problème venait de Microsoft Visual Studio, il faut être con pour faire un fichier php avec un machin qui ne sert à rien, en fait il doit ajouter des trucs dans la feuille genre ça a été fait avec un logiciel Microdaube, t'as supprimé ça à la ligne 2 le 1/04/2009, mais quand j'ouvrais avec wordpad ou le block note, rien d'anormal ne s'affichait... j'ai recréé le fichier sur le block note, copié collé le code et pouf ! mon image s'affiche !

2 jours à s'arracher les cheveux, encore à cause de... je m'enflamme ^^

bon je laisse ça ici pour ceux que ça intéresserait ^^
LA GLOBULE
le 26/05/2009 à 18:24
LA GLOBULE
Bien choisir son éditeur de texte est une priorité :)

Gilou, si tu ne vois pas d'erreur, c'est que ta configuration de PHP ne les affiche pas.
Il faut modifier ton php.ini en conséquence (genre display_errors à On et un error_reporting à E_ALL).
Darkendorf
le 27/05/2009 à 09:20
Darkendorf
oui effectivement, je suis repassé sous eclipse, un bonheur ^^

par contre si je peux me permettre de poser une nouvelle question sur ce thread, en rapport avec la précédente :

Je redimensionne mon image si elle dépasse certaines dimensions, avec ceci :

<?php
$image_redim = imagecreatetruecolor($image_largeur, $image_hauteur);
imagecopyresampled($image_redim, $image, 0, 0, 0, 0, $image_largeur, $image_hauteur, $taille[0], $taille[1]);
?>


mais pour l'enregistrer en base il me faut une string, et là j'ai une ressource. Il existe une fonction pour l'en extraire ?? la seul solution que je trouve est de produire un fichier en sortie ( imagejpeg($image_redim,$filename); ) puis d'en extraire la contenu en string avec file_get_contents($filename); puis supprimer l'image, ce qui est particulièrement long et gourmand ^^

Merci d'avance ;)
Répondre
LoadingChargement en cours