Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/10/2005, 21:29
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. como estás usando la solución que te dió: hieloverde ?

Se trata de tener tu código que genera la imagen (que la obtiene de tu BD) -aparte- y llamarlo con un tag de HTML de imagen desde -otro- script ..

imagen.php
Código PHP:
<?
$result 
mysql_query("SELECT Imagen FROM tbl_Banner WHERE Id_imagen=11");
$result_array mysql_fetch_array($result);
header("Content-Type: image/gif");
echo 
$result_array[0]; 
?>
otro.php
Código PHP:
<?
echo ("<img src='imagen.php' border='0'>"); 
?>
Y esos "geroglificos" tienen su explicación en como funciona el protocolo HTTP y las páginas "HTTP" en general ..

Cuando tu generas una página HTML aunque tu no lo indiques expresamente .. tu servidor HTTP dice que es una página con contenido texto plano o HTML cara a tu "cliente" (tu navegador en tu caso) que solicita esa página a tu servidor HTTP .. Cuando tu envias otro tipo de "dato" a tu cliente (navegador) este para que lo interprete como corresponda se le ha de decir -expresamente- que tipo de dato se le está enviando .. y eso se hace con las cabeceras HTTP adecuadas (en php las "lanzas" vía header()).

Para "intercalar" tipos de "Datos" diferentes en una página HTML común .. se usan tag's como el de imagen .. el cual espera y así interpretará un navegador o cliente cualquiera que por ahí llegará un dato normalmente de "imagen" definido con su cabecera HTTP tipo "content-type" adecuada.

Si tu le dices a tu navegador "aquí te envio contenido en texto plano" .. y luego le envias otro tipo de contenido (tu imagen almacenada fisicamente) .. es normal que lo intente interpretar como "texto plano" (e ahí tus "geroglificos").

Así que .. problemas con este tipo de cosas se deben principalmente a:
1) No se interpretó la cabecera HTTP según el tipo de dato que envias (ejemplo: tu dato en tu BD de la imagen es un "jpg" y le dices que lo interprete como "gif" (content-type: gif) ...)
2) Envias otras cabeceras que indican que vas a enviar datos tipo "texto plano o HTML" (o no lo haces expresamente y lo hace por defecto tu servidor HTTP) y luego le pretendes enviar otra definición de cabeceras (via Header()).

Bueno .. no sé si habré sido claro.. (tampoco yo domino al 100% el protoco HTTP .. ) pero todo tiene su "por qué" .. habría que profundizar un poco más sobre el protocolo HTTP .. así se entenderían muchas cosas más de como funciona todo esto. En resumen . .saber que "existe" y si hay dudas ... ir a consultar la referencia oficial en sus RFC's correspondientes.

Un saludo,