Foros del Web » Programando para Internet » PHP »

Error con header al mostrar imagen

Estas en el tema de Error con header al mostrar imagen en el foro de PHP en Foros del Web. Buenas, Tengo un problema con el tema de los headers y me esta volviendo loco. Lo que intntento hacer es mostar una imagen que esta ...
  #1 (permalink)  
Antiguo 06/12/2008, 12:48
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Error con header al mostrar imagen

Buenas,

Tengo un problema con el tema de los headers y me esta volviendo loco.
Lo que intntento hacer es mostar una imagen que esta guardada en la base de datos en un campo longblog.

Lo que quiero hacer es que la imagen se muestre dentro de unas talbas que he creado para ello.

Código PHP:
<?php

@mysql_connect("localhost""root""pass") or die('No se puede conectar con el servidor

mysql'
);

@
mysql_select_db("deffer") or die('No se puede seleccionar la base de datos

especificada'
);

$datos = ($_GET['id']) ? "id=$_GET[id]" "nombre='$_GET[nombre]'";

$resultado = @mysql_query("SELECT imagen FROM img_usuarios WHERE " $datos) or die('Error con

las intrucciones enviadas al script'
);

$imagen = @mysql_result($resultado,0) or die('Imagen inexistente');

header('Content-type: image/jpeg');

echo 
"<style>
<style type='text/css'>

.imagen {
border: 1px solid #CCC;
background-color: #F7FBFF;
font-family: Verdana;
font-size: 11px;
color: #666;
}
</style>"
;

echo 
'<img src="../../img/panel/iconos/atras.png" style="float:left" title="Atrás" OnClick="javascript:history.back()">';
echo 
"<br>";
echo 
"<br>";
echo 
"<br>";
echo 
"<td align='center'>
        <table  width='50%' cellpadding='2' cellspacing='0' border='0'  align='center' class='imagen'>
        <tr>
<td>$imagen</td></tr>

      
</table>
    </td>
</tr>
</table>"
;
?>
Si lo pongo de esa manera, me muestra la direccion de la imagen. Ejemplo: http://localhost/ver.php?ver=&id=1

Si quito todo el diseño del as tablas y eso, la imagne se muestra correctamente, pero al añadirlas pues no se muestra.
El problema esta claro que esta aqui: header('Content-type: image/jpeg');,
lo que pasa que lo he puesto ya arriba del todo, abajo del todo, en fin, en mil sitios y no consigo hacer que se muestre la imagen dentro de la tabla.

Lo cierto que hubo una vez que si lo consegui, pero no me mostraba la imagen, me mostraba todo lleno de caracteres ascii.

Que solución le puedo dar a esto?

Gracias,
  #2 (permalink)  
Antiguo 06/12/2008, 12:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error con header al mostrar imagen

hola... esa no es la forma... correcta

Cita:
[...] me mostraba todo lleno de caracteres ascii [...]
si es una imagen (binaria) en un BLOB ... no debes imprimirla en el HTML !!!

debes crear un script distinto, que solo envíe la información binaria de la imagen... y usar el tag <img/> para cargar este script...

el tema ya ha sido tratado, te sugiero investigues... suerte!

--


si es una ruta URL completa, y real .... entonces, usa el tag HTML para esto... <img/>
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 07/12/2008 a las 02:31 Razón: rrrr
  #3 (permalink)  
Antiguo 06/12/2008, 14:08
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Error con header al mostrar imagen

DeFFER:
Te sugiero que leas un poco mas acerca las Cabeceras y para que se usan.
Ya que tu problema esta donde te ha indicado el amigo
pateketrueke.
Saludos
Franco
  #4 (permalink)  
Antiguo 06/12/2008, 17:34
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Error con header al mostrar imagen

Buenas,

Gracias por las respuestas, busque información por el foro y me puse a probar y no daba con la solución y justo cuando iva a volver a solicitar ayuda, se me ocurrión hacerlo de la siguiente manera y ya por fin, con ésta conseuí hacerlo funcionar.

Asi es como lo tengo y me funciona a la perfección :)

mostrar.php
Código PHP:
<?
@mysql_connect("localhost""root""pass") or die('No se puede conectar con el servidor

mysql'
);

@
mysql_select_db("deffer") or die('No se puede seleccionar la base de datos

especificada'
);

$datos = ($_GET['id']) ? "id=$_GET[id]" "nombre='$_GET[nombre]'";

$resultado = @mysql_query("SELECT imagen FROM img_usuarios WHERE " $datos) or die('Error con

las intrucciones enviadas al script'
);

$imagen = @mysql_result($resultado,0) or die('Imagen inexistente');
Header("content-type: image/jpeg");
print 
$imagen;
?>
Luego utilizo éste archivo para que se me muestre la imagen que quiero:
npi.php
Código PHP:
<html>
<head>
</head>
<body>
<style type='text/css'>

.imagen {
border: 1px solid #CCC;
background-color: #F7FBFF;
font-family: Verdana;
font-size: 11px;
color: #666;
}

</style>

<br>
<br>

<td align='center'>
        <table  width='20%' cellpadding='2' cellspacing='0' border='0'  align='center' class='imagen'>
        <tr>
<td><img src="mostrar.php?visualizar=&id=<? echo $_GET['id'?>"></img>

      

    </td>
</tr>
</table>
</body>
</html>
Eso es todo, muchas gracias por todo.
  #5 (permalink)  
Antiguo 07/12/2008, 02:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error con header al mostrar imagen

no puedo negarme, eso es toño.... tigre!

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 11/12/2008, 13:08
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Error con header al mostrar imagen

No se lo que significa 'toño', pero viendo los aplausos creo que no cabe duda que es como una felicitación.
Yo solo decir muchas gracias por esas referencias dadas :)

Nos vemos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.