problème d'affichage d'image binaire

Eléphant du PHP | 162 Messages

29 juil. 2013, 14:11

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 !';
?>

Eléphant du PHP | 96 Messages

29 juil. 2013, 14:19

Il faudrait supprimer l'affichage de l'id
 echo $idImg;
Le header doit etre la première chose envoyée par php :)
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

29 juil. 2013, 15:45

ç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 !';
?>

Eléphant du PHP | 96 Messages

29 juil. 2013, 15:50

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.
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

29 juil. 2013, 19:17

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 .

Eléphant du PHP | 96 Messages

29 juil. 2013, 19:22

note: votre variable en GET s'appelle id (cf votre url)
alors que la variable récupéré est "id_img"
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

29 juil. 2013, 20:41

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 .

Eléphant du PHP | 96 Messages

29 juil. 2013, 21:18

et dans les logs apache ?
Quel serveur utilisez-vous ? wamp, easyphp, apache sur linux ?
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

29 juil. 2013, 21:42

wamp sur windows 7

Eléphant du PHP | 96 Messages

29 juil. 2013, 21:53

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 ;)
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

29 juil. 2013, 22:05

je ne vois pas cette bar de notification. excuse moi peut tu me l'indiquer

Eléphant du PHP | 96 Messages

29 juil. 2013, 22:24

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 :)
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

29 juil. 2013, 22:40

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 ?

Eléphant du PHP | 96 Messages

30 juil. 2013, 08:25

L'adresse C:/wamp/www/css existe bien ? verifiez qu'il n'y a pas d'erreur (minuscule/majuscule)
Le mkframework, un framework simple et sécurisé: http://mkdevs.com

Eléphant du PHP | 162 Messages

31 juil. 2013, 19:35

je n 'arrive toujours pas afficher mes images. je fait tout mais rien toutes les adresses sont correctes