Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/03/2008, 19:29
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Imagenes en PHP

@Hobitt, no te funciona porque estás cometiendo un error de "concepto". El servidor PHP envía al navegador contenidos, cierto?. Ahora, hay diferentes tipos de contenidos. Si no se define, el servidor le envía cabeceras al navegador (cliente) indicándole, vamos, digamos que es HTML lo que tiene que mostrar. Pero ese no es el único tipo de contenido que envía el servidor.

En tu caso, está enviando una cabecera diferente:

Código PHP:
header("Content-Type: image/jpeg"); 
Qué significa eso? Con esa linea tu script le está diciendo al cliente que va a enviar una imagen, y por lo tanto debe tratarla como tal. Ahora, si estás enviando el contenido (OJO, el contenido!) de una imagen, y le estás diciendo a tu cliente que genere una imagen en base a la salida producida, NO puedes incluir código HTML.

Por eso si no envias las cabeceras y haces un echo de la imagen (como dices), te muestra esos números y letras y demás, pues no le has indicado al cliente que debe tratar el contenido como imagen, y el cliente lo muestra tal y como le llega (Te vuelvo a recalcar, es el contenido de la imagen lo que envía, como si un archivo.jpg lo abrieras en el Notepad).

Solución? Tienes que (debes) usar un archivo aparte para generar la imagen, sólo para generarla. Nada de código HTML ni demás ahi. Sólo la imagen. Este archivo (digamos... imagen.php) deberás incluirlo en tu código HTML como a cualquier imagen:

Código HTML:
<img src="imagen.php"> 
Sólo así podrás hacer lo que deseas. En ese archivo incluye tu primera consulta, sólo esa, con su header() y su "echo de la imagen".

Y nunca te olvides de lo que te dije, por favor. Ese error es bastante común. SI quieres enviar una imagen, y generas cabeceras para tal, no puedes mezclar ni enviar otro tipo de contenidos, ni visceversa.

Saludos,