Page 1 sur 2

problème d'affichage d'image binaire

Posté : 29 juil. 2013, 14:11
par msi79
bonjour à tous .
j'ai inséré des images en binaire (je sais que c'est pas la bonne méthode mais le client exige cela) mais je n'arrive pas a les afficher.
quand je veux afficher ça me met comme erreur :

L'mage"http://localhost/xxxxx?page=apercu&id=11" ne peut etre affiché car elle contient des erreurs .

*voici mes 2 codes utilisés pour afficher :

galerie.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Ma galerie d'images</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <style type="text/css">
		body {
			width: 95%;
		}
 
		
 
		p {
			text-align: left;
		}
 
		a {
			color: #000000;
			text-decoration: none;
		}
	   </style>
   </head>
   <body>
 
	<h1 style="position:absolute;top:200px; left:350px">FICHIERS NUMERISES</h1>
 
	<?php
	include('body/header.php');
    include('body/menu.php');
	    try {
		$bdd = new PDO('mysql:host=localhost;dbname=bddgescour', 'root', '');
               } catch (Exception $e) {
		exit('Erreur : ' . $e->getMessage());
	    }
        if(isset($_GET['id']));
           $id = $_GET['id'];
         // on crée la requête SQL

	    $reponse = $bdd->query("SELECT img,id_img,nom,id_victime FROM  image  WHERE id_victime='".$id."'   ");
	    while($result = $reponse->fetch()) {
 
		echo '<div style="position:relative;top:250px; left:-121px;	width: 22%;
			float: left;
			text-align: center;
			border: 1px solid black;
			margin: 5px;
			padding:  5px">';
		echo '<a href="index.php?page=apercu&id_img='.$result['id_victime'].'"><img src="index.php?page=apercu&id_img='.$result['id_victime'].'"   alt="'.$result['nom'].'"   title="'.$result['nom'].'"/></a>';
		
		echo '</div>';
	    }
 
	    $reponse->closeCursor();
	?>

</body>
</html>
ensuite apercu.php
<?php
include('body/header.php');
include('body/menu.php');
    //si nous avons une image
    if(!empty($_GET['id_img'])) {
 
	//connexion à la base de données
	try {
		$bdd = new PDO('mysql:host=localhost;dbname=bddgescour', 'root', '');
	} catch (Exception $e) {
		exit('Erreur : ' . $e->getMessage());
	}
 
	//on sécurise notre donnée
	$idImg = intval($_GET['id_img']);
	echo $idImg;
 
	//la requète qui récupère l'image à partir de l'identifiant
	$req = $bdd->prepare('SELECT * FROM image WHERE id_victime = ?');
	$req->execute(array($idImg));		
 
	if($req->rowCount() <1)
		echo 'L\'image n\'existe pas !';
	else {
		//on stocke les données dans un tableau
		$donnees = $req->fetch();		
		//on indique qu'on affiche une image
		header ("Content-type: ".$donnees['extension']);
		//on affiche l'image en elle même
		echo $donnees['img'];
	
	}
 
	$req->closeCursor();
 
    } else
           echo 'Vous n avez pas sélectionné d image !';
?>

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 14:19
par imikado
Il faudrait supprimer l'affichage de l'id
 echo $idImg;
Le header doit etre la première chose envoyée par php :)

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 15:45
par msi79
ça marche toujours pas .
galerie.php
<?php
	include('body/header.php');
    include('body/menu.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Ma galerie d'images</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <style type="text/css">
		body {
			width: 95%;
		}
 
		
 
		p {
			text-align: left;
		}
 
		a {
			color: #000000;
			text-decoration: none;
		}
	   </style>
   </head>
   <body>
 
	<h1 style="position:absolute;top:200px; left:350px">FICHIERS NUMERISES</h1>
 
	<?php

	    try {
		$bdd = new PDO('mysql:host=localhost;dbname=bddgescour', 'root', '');
               } catch (Exception $e) {
		exit('Erreur : ' . $e->getMessage());
	    }
        if(isset($_GET['id']));
           $id = $_GET['id'];
         // on crée la requête SQL

	    $reponse = $bdd->query("SELECT img,id_img,nom,id_victime FROM  image  WHERE id_victime='".$id."'   ");
	    while($result = $reponse->fetch()) {
 
		echo '<div style="position:relative;top:250px; left:-121px;	width: 22%;
			float: left;
			text-align: center;
			border: 1px solid black;
			margin: 5px;
			padding:  5px">';
		echo '<a href="index.php?page=apercu&id_img='.$result['id_victime'].'"><img src="index.php?page=apercu&id_img='.$result['id_victime'].'"   alt="'.$result['nom'].'"   title="'.$result['nom'].'"/></a>';
		
		echo '</div>';
	    }
 
	    $reponse->closeCursor();
	?>

</body>
</html>

apercu.php
<?php
include('body/header.php');
include('body/menu.php');
    //si nous avons une image
    if(!empty($_GET['id_img'])) {
 
	//connexion à la base de données
	try {
		$bdd = new PDO('mysql:host=localhost;dbname=bddgescour', 'root', '');
	} catch (Exception $e) {
		exit('Erreur : ' . $e->getMessage());
	}
 
	//on sécurise notre donnée
	$idImg = intval($_GET['id_img']);

	//la requète qui récupère l'image à partir de l'identifiant
	$req = $bdd->prepare('SELECT * FROM image WHERE id_victime = ?');
	$req->execute(array($idImg));		
 
	if($req->rowCount() <1)
		echo 'L\'image n\'existe pas !';
	else {
		//on stocke les données dans un tableau
		$donnees = $req->fetch();		
		//on indique qu'on affiche une image
		header ("Content-type: ".$donnees['extension']);
		//on affiche l'image en elle même
		echo $donnees['img'];
	
	}
 
	$req->closeCursor();
 
    } else
           echo 'Vous n avez pas sélectionné d image !';
?>

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 15:50
par imikado
que se passe-t-il ? erreur php, page blanche ?
essayer d'afficher le code source de la page pour voir si il n'y pas une erreur php corrompant le rendu de l'image.

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 19:17
par msi79
bonsoir .
voici l'erreur qui s'affiche avec une page noire:

'mage"http://localhost/xxxxx?page=apercu&id=11" ne peut etre affiché car elle contient des erreurs .

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 19:22
par imikado
note: votre variable en GET s'appelle id (cf votre url)
alors que la variable récupéré est "id_img"

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 20:41
par msi79
dans ma page galerie.php
le lien pour acceder a apercu.php est :
<a href="index.php?page=apercu&id_img='.$result['id_victime'].'"><img src="index.php?page=apercu&id_img='.$result['id_victime'].'" alt="'.$result['nom'].'" title="'.$result['nom'].'"/></a>

et je recuperer dans apercu.php avec :
$idImg = intval($_GET['id_img']);

mais j'ai toujours :

L'mage"http://localhost/xxxxx?page=apercu&id_img=11" ne peut etre affiché car elle contient des erreurs .

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 21:18
par imikado
et dans les logs apache ?
Quel serveur utilisez-vous ? wamp, easyphp, apache sur linux ?

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 21:42
par msi79
wamp sur windows 7

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 21:53
par imikado
Sur wamp, dans la barre de notificaiton en cliquant sur l'icone (droit ou gauche, je sais plus) vous pouvez afficher les logs d'erreurs apache
faites le, vous devrier voir vos erreurs php ;)

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 22:05
par msi79
je ne vois pas cette bar de notification. excuse moi peut tu me l'indiquer

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 22:24
par imikado
Dans windows 7, il y a une barre en bas, tout à droite, à coté de l'heure, il doit y avoir le logo de wamp (pour dire qu'il tourne), il est cliquable (clic droit/gauche je me souviens plus)
Ca affiche un menu pour acceder à des fonctionnalités supplémentaires, notamment l'affichage des erreurs php :)

Re: problème d'affichage d'image binaire

Posté : 29 juil. 2013, 22:40
par msi79
voici une ligne du fichier apache_error :

[Mon Jul 29 20:11:29 2013] [error] [client 127.0.0.1] File does not exist: C:/wamp/www/css, referer: http://localhost/GES-COUR_Binaire/index ... hoto&id=12

comment est ce que je l'exploite ?

Re: problème d'affichage d'image binaire

Posté : 30 juil. 2013, 08:25
par imikado
L'adresse C:/wamp/www/css existe bien ? verifiez qu'il n'y a pas d'erreur (minuscule/majuscule)

Re: problème d'affichage d'image binaire

Posté : 31 juil. 2013, 19:35
par msi79
je n 'arrive toujours pas afficher mes images. je fait tout mais rien toutes les adresses sont correctes