Foros del Web » Programando para Internet » PHP »

Header con JPEG

Estas en el tema de Header con JPEG en el foro de PHP en Foros del Web. Buenas a todos, Iré al grano, llevo tiempo intentando que un archivo .php sea leído por el servidor como un .jpg ó .png para que ...
  #1 (permalink)  
Antiguo 28/03/2011, 05:36
Avatar de ivangd  
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Header con JPEG

Buenas a todos,

Iré al grano, llevo tiempo intentando que un archivo .php sea leído por el servidor como un .jpg ó .png para que así la gente pueda guardarlo como imagen... pero todos mis esfuerzos han sido en vano.

El .php se encarga de recibir una serie de valores de un formulario y en función de que halla seleccionado la gente muestra o no una serie de imágenes (es para una firma)

Os pego el código integro.

Código PHP:
<?php
ob_start
();

//ini_set('display_errors','0');



$nick=$_POST['nick'];
$graduacion=$_POST['rango'];

$mision=$_POST['misionesoficiales'];

$honor=$_POST['honor'];
$servicios=$_POST['servicios'];
$estrella_plata=$_POST['estrella_plata'];
$orosalva=$_POST['orosalva'];
$platasalva=$_POST['platasalva'];
$estrella_bronce=$_POST['estrella_bronce'];
$drojo=$_POST['drojo'];
$damarillo=$_POST['damarillo'];

$infanteria=$_POST['infanteria'];
$medico=$_POST['heridos'];
$granadero=$_POST['granadero'];
$ametrallador=$_POST['ametrallador'];
$tirador=$_POST['tirador'];
$anticarro=$_POST['anticarro'];
$zapador=$_POST['zapador'];
$ligeros=$_POST['ligeros'];
$carros=$_POST['carros'];
$aereas=$_POST['helicopteros'];
$aerotransportada=$_POST['aerotransportada'];
$radio=$_POST['radio'];

$firma='';

$firma.="<table id='base'>
  <tr>
    <td width='180' height='90' class='medallas'>
        "
;
        if(
$honor=='si')
                
$firma.="<img src='medalla/honor.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
        if(
$servicios=='si')
                
$firma.="<img src='medalla/distinguidos.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
        if(
$estrella_plata=='si')
                
$firma.="<img src='medalla/estrellaplata.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
        if(
$orosalva=='si')
                
$firma.="<img src='medalla/cruzoro.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
    
$firma.="</td>
    <td width='70' align='center' class='graduacion'>"
;
        if(
$graduacion=='alferez')
                
$firma.="<img src='graduacion/alferez.png'>";
        
f($graduacion=='cabo1')
                
$firma.="<img src='graduacion/cabo1.png'>";
        if(
$graduacion=='cabo')
                
$firma.="<img src='graduacion/cabo.png'>";
        if(
$graduacion=='cabo_mayor')
                
$firma.="<img src='graduacion/cabomayor.png'>";
        if(
$graduacion=='capitan')
                
$firma.="<img src='graduacion/capitan.png'>";
        if(
$graduacion=='comandante')
                
$firma.="<img src='graduacion/comandante.png'>";
        if(
$graduacion=='sargento1')
                
$firma.="<img src='graduacion/sargento1.png'>";
        if(
$graduacion=='sargento')
                
$firma.="<img src='graduacion/sargento.png'>";
        if(
$graduacion=='soldado1')
                
$firma.="<img src='graduacion/soldado1.png'>";
        if(
$graduacion=='soldado')
                
$firma.="<img src='graduacion/soldado.png'>";
        if(
$graduacion=='suboficial_mayor')
                
$firma.="<img src='graduacion/suboficialmayor.png'>";
        if(
$graduacion=='subteniente')
                
$firma.="<img src='graduacion/subteniente.png'>";
        if(
$graduacion=='teniente')
                
$firma.="<img src='graduacion/teniente.png'>";
        if(
$graduacion=='teniente_coronel')
                
$firma.="<img src='graduacion/tenientecoronel.png'>";
    
    
$firma.="</td>
    <td width='360' class='nombre'>"
;
    
    
$texto $nick
$maximo strlen($texto); 
$ultima='0';

for (
$i=0;$i<$maximo;$i++){ 

    if(
$texto{$i}=='a' or $texto{$i}=='A')
        
$firma.="<img src='letras/A.png'>"
    if(
$texto{$i}=='b' or $texto{$i}=='B')
        
$firma.="<img src='letras/B.png'>"
    if(
$texto{$i}=='c' or $texto{$i}=='C')
        
$firma.="<img src='letras/C.png'>"
    if(
$texto{$i}=='d' or $texto{$i}=='D')
        
$firma.="<img src='letras/D.png'>";
    if(
$texto{$i}=='e' or $texto{$i}=='E')
        
$firma.="<img src='letras/E.png'>"
    if(
$texto{$i}=='f' or $texto{$i}=='F')
        
$firma.="<img src='letras/F.png'>"
    if(
$texto{$i}=='g' or $texto{$i}=='G')
        
$firma.="<img src='letras/G.png'>"
    if(
$texto{$i}=='h' or $texto{$i}=='H')
        
$firma.="<img src='letras/H.png'>"
    if(
$texto{$i}=='i' or $texto{$i}=='I')
        
$firma.="<img src='letras/I.png'>"
    if(
$texto{$i}=='j' or $texto{$i}=='J')
        
$firma.="<img src='letras/J.png'>"
    if(
$texto{$i}=='k' or $texto{$i}=='K')
        
$firma.="<img src='letras/K.png'>"
    if(
$texto{$i}=='l' or $texto{$i}=='L')
        
$firma.="<img src='letras/L.png'>"
    if(
$texto{$i}=='m' or $texto{$i}=='M')
        
$firma.="<img src='letras/M.png'>"
    if(
$texto{$i}=='n' or $texto{$i}=='N')
        
$firma.="<img src='letras/N.png'>"
    if(
$texto{$i}=='o' or $texto{$i}=='O')
        
$firma.="<img src='letras/O.png'>"
    if(
$texto{$i}=='p' or $texto{$i}=='P')
        
$firma.="<img src='letras/P.png'>"
    if(
$texto{$i}=='q' or $texto{$i}=='Q')
        
$firma.="<img src='letras/Q.png'>"
    if(
$texto{$i}=='r' or $texto{$i}=='R')
        
$firma.="<img src='letras/R.png'>"
    if(
$texto{$i}=='s' or $texto{$i}=='S')
        
$firma.="<img src='letras/S.png'>"
    if(
$texto{$i}=='t' or $texto{$i}=='T')
        
$firma.="<img src='letras/T.png'>"
    if(
$texto{$i}=='u' or $texto{$i}=='U')
        
$firma.="<img src='letras/U.png'>"
    if(
$texto{$i}=='v' or $texto{$i}=='V')
        
$firma.="<img src='letras/V.png'>"
    if(
$texto{$i}=='w' or $texto{$i}=='W')
        
$firma.="<img src='letras/W.png'>"
    if(
$texto{$i}=='x' or $texto{$i}=='X')
        
$firma.="<img src='letras/X.png'>"
    if(
$texto{$i}=='y' or $texto{$i}=='Y')
        
$firma.="<img src='letras/Y.png'>"
    if(
$texto{$i}=='z' or $texto{$i}=='Z')
        
$firma.="<img src='letras/Z.png'>"

}  
    
        
    
$firma.="</td>
   <td width='70' align='center' class='graduacion'>"
;

        if(
$graduacion=='alferez')
                
$firma.="<img src='graduacion/alferez.png'>";
        
f($graduacion=='cabo1')
                
$firma.="<img src='graduacion/cabo1.png'>";
        if(
$graduacion=='cabo')
                
$firma.="<img src='graduacion/cabo.png'>";
        if(
$graduacion=='cabo_mayor')
                
$firma.="<img src='graduacion/cabomayor.png'>";
        if(
$graduacion=='capitan')
                
$firma.="<img src='graduacion/capitan.png'>";
        if(
$graduacion=='comandante')
                
$firma.="<img src='graduacion/comandante.png'>";
        if(
$graduacion=='sargento1')
                
$firma.="<img src='graduacion/sargento1.png'>";
        if(
$graduacion=='sargento')
                
$firma.="<img src='graduacion/sargento.png'>";
        if(
$graduacion=='soldado1')
                
$firma.="<img src='graduacion/soldado1.png'>";
        if(
$graduacion=='soldado')
                
$firma.="<img src='graduacion/soldado.png'>";
        if(
$graduacion=='suboficial_mayor')
                
$firma.="<img src='graduacion/suboficialmayor.png'>";
        if(
$graduacion=='subteniente')
                
$firma.="<img src='graduacion/subteniente.png'>";
        if(
$graduacion=='teniente')
                
$firma.="<img src='graduacion/teniente.png'>";
        if(
$graduacion=='teniente_coronel')
                
$firma.="<img src='graduacion/tenientecoronel.png'>";
    
    
$firma.="</td>
    <td width='180' class='medallas'>"
;
     
        if(
$platasalva=='si')
                
$firma.="<img src='medalla/cruzplata.png'>";    
            else
                
$firma.="<img src='medalla/blank.png'>";
        if(
$estrella_bronce=='si')
                
$firma.="<img src='medalla/estrellabronce.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
        if(
$drojo=='si')
                
$firma.="<img src='medalla/distintivorojo.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
        if(
$damarillo=='si')
                
$firma.="<img src='medalla/distintivoamarillo.png'>";
            else
                
$firma.="<img src='medalla/blank.png'>";
        
    
$firma.="</td>
  </tr>
  <tr>
    <td colspan='5' height='110' class='metopas' align='center'>"
;
                
        if(
$medico=='heridos_oro')
                
$firma.="<img src='metopa/medico/oro.png'>";    
        if(
$medico=='heridos_plata')
                
$firma.="<img src='metopa/medico/plata.png'>";
        if(
$medico=='heridos_bronce')
                
$firma.="<img src='metopa/medico/bronce.png'>";
        
        if(
$granadero=='granadero_oro')
                
$firma.="<img src='metopa/granadero/oro.png'>";
        if(
$granadero=='granadero_plata')
                
$firma.="<img src='metopa/granadero/plata.png'>";
        if(
$granadero=='granadero_bronce')
                
$firma.="<img src='metopa/granadero/bronce.png'>";
        
        if(
$ametrallador=='ametrallador_oro')
                
$firma.="<img src='metopa/ametrallador/oro.png'>";
        if(
$ametrallador=='ametrallador_plata')
                
$firma.="<img src='metopa/ametrallador/plata.png'>";
        if(
$ametrallador=='ametrallador_bronce')
                
$firma.="<img src='metopa/ametrallador/bronce.png'>";
        
        if(
$tirador=='tirador_oro')
                
$firma.="<img src='metopa/tirador/oro.png'>";
        if(
$tirador=='tirador_plata')
                
$firma.="<img src='metopa/tirador/plata.png'>";
        if(
$tirador=='tirador_bronce')
                
$firma.="<img src='metopa/tirador/bronce.png'>";
        
        if(
$anticarro=='anticarro_oro')
                
$firma.="<img src='metopa/anticarro/oro.png'>";
        if(
$anticarro=='anticarro_plata')
                
$firma.="<img src='metopa/anticarro/plata.png'>";
        if(
$anticarro=='anticarro_bronce')
                
$firma.="<img src='metopa/anticarro/bronce.png'>";
        
        if(
$zapador=='zapador_oro')
                
$firma.="<img src='metopa/zapador/oro.png'>";
        if(
$zapador=='zapador_plata')
                
$firma.="<img src='metopa/zapador/plata.png'>";
        if(
$zapador=='zapador_bronce')
                
$firma.="<img src='metopa/zapador/bronce.png'>";
        
        if(
$carros=='carros_oro')
                
$firma.="<img src='metopa/carros/oro.png'>";
        if(
$carros=='carros_plata')
                
$firma.="<img src='metopa/carros/plata.png'>";
        if(
$carros=='carros_bronce')
                
$firma.="<img src='metopa/carros/bronce.png'>";
    
$firma.="</td>
  </tr>
  <tr>
    <td colspan='5' height='5'></td>
  </tr>
</table>"
;

echo 
"<div align='center' style='padding-top:100px;'>";

$mostrar=$firma;

echo 
$mostrar;
echo 
"</div>";

?>
En el momento que escribo header("Content-Type: image/jpeg"); me lanza el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/thevode.com/web/eagle/genfirmas/formu.php:7) in /usr/home/thevode.com/web/eagle/genfirmas/formu.php on line 388

He probado mil scripts que he encontrado por ahí y no soy capaz de solucionarlo.

Un saludo y mil gracias.
  #2 (permalink)  
Antiguo 28/03/2011, 05:49
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Header con JPEG

Cuando utilizas la función header no has de haber mostrado nada por pantalla, lo que significa que cualquier echo hará que la funcion no se ejecute o no funcione. Creo que por eso mismo te salta el warning.

Tampoco sé donde llamas a la funcion header.
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #3 (permalink)  
Antiguo 28/03/2011, 08:54
Avatar de ivangd  
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Header con JPEG

Cita:
Iniciado por Vallu Ver Mensaje
Cuando utilizas la función header no has de haber mostrado nada por pantalla, lo que significa que cualquier echo hará que la funcion no se ejecute o no funcione. Creo que por eso mismo te salta el warning.

Tampoco sé donde llamas a la funcion header.
Buenas,

El "echo header("Content-Type: image/jpeg")" he probado a ubicarle al principio, por el medio, al final del código, antes del echo $mostrar... y el error persiste.

Lo último que he probado es lo siguiente:

Código PHP:
<?php
ob_start
();
header("Content-Type: image/jpeg");
?>
Justo al inicio del documento, pero al hacer eso luego hago echo $mostrar y no hace nada. He leído algo de GD en el manual de php pero desconozco completamente esta función.

Un saludo.

Última edición por ivangd; 28/03/2011 a las 09:10
  #4 (permalink)  
Antiguo 28/03/2011, 10:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Header con JPEG

lo que sucede es que dicho header() solo sirve para mostrar la información binaria de la imagen... y tu estas imprimiendo HTML!!

veamos... una pregunta sencilla, ¿que crees que estas haciendo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/03/2011, 10:24
Avatar de ivangd  
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Header con JPEG

Cita:
Iniciado por pateketrueke Ver Mensaje
lo que sucede es que dicho header() solo sirve para mostrar la información binaria de la imagen... y tu estas imprimiendo HTML!!

veamos... una pregunta sencilla, ¿que crees que estas haciendo?
Realmente no lo sé, ya he probado tantas cosas que no sé que hacer. Ahora he caído en la espiral de tirar líneas de código e ir probando una cosa y otra sin pararme a pensar que hacen, es un error lo sé pero la paciencia nunca fue una virtud mía y además esto es para un asunto de ocio al que tampoco puedo dedicarle mucho tiempo. Por otro lado nunca había tenido la necesidad de usar la función header, de ahí mi total desconocimiento.

Lo que quiero es poder guardar los resultados que se dan en pantalla en una imagen, pues es una firma, para luego mostrarlo mediante BBCODE.

Ahora mismo la variable $mostrar tiene un conjunto de capas con diferentes imágenes, la cuestión es como consigo "empaquetar" todas las imágenes en una.

Seguramente sea sencillo, pero como recalco unas líneas más arriba desconozco el funcionamiento de la librería GD y de la función header.

Un saludo y gracias a todos.
  #6 (permalink)  
Antiguo 28/03/2011, 10:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Header con JPEG

he ahí el problema, si lo haces por ocio no vas a llegar lejos... y bueno, deberías saber que las capas que crees son imágenes no lo son!!

a eso se le conoce como HTML, y de ninguna manera lo puedes empaquetar como una imagen... porque simplemente no son imágenes, es hipertexto...

si lo que necesitas es generar una imagen claramente debes usar funciones para procesar imágenes, como lo es la librería GD.... y bueno, nada que ver con hipertexto... por favor, si de verdad quieres resolver esto hazlo por el camino correcto: lee y estudia, que escribir lineas a lo estúpido solo demuestra lo [IDEM] que podemos llegar a ser....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 29/03/2011, 05:05
Avatar de ivangd  
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Header con JPEG

Solucionado.

Etiquetas: header, jpeg
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 21:10.