Foros del Web » Programando para Internet » PHP »

Cannot modify header information - headers already sent by

Estas en el tema de Cannot modify header information - headers already sent by en el foro de PHP en Foros del Web. hola estoy utilizando html2pdf para crear un pdf, y lo creo con una consulta de php, el error que me salta es este: Código: Warning: ...

  #1 (permalink)  
Antiguo 29/01/2010, 06:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Cannot modify header information - headers already sent by

hola estoy utilizando html2pdf para crear un pdf, y lo creo con una consulta de php, el error que me salta es este:

Código:
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/aulacive.es/web/pdf/22222/configuracion.php:12) in /usr/home/ejemplo.es/web/pdf/22222/fpdf.php on line 1676
FPDF error: Some data has already been output to browser, can't send PDF file

el codigo que utilizo es el siguiente , configuracion php:

Código PHP:
<?php
                        $link 
mysql_connect('localhost''''');
                        if (!
$link)
                        {
                            die(
'No se pudo conectar: ' mysql_error());
                        }
                        
$db mysql_select_db("basededatos",$link)
                        or die(
"error");
                        
$consulta mysql_query("SELECT nombremateria from materias",$link);
    while(
$rs mysql_fetch_array$consulta  ))
    {
    echo 
$rs['nombremateria'];    
    }
    
mysql_close($link);
?>
y en prueba_libreria.php :

Código PHP:
<?php include_once('html2fpdf.php');

include_once(
'configuracion.php');
include_once(
'fpdf.php');

// Guardamos en una variable el texto que contendra el pdf   
$testo 
"  

<html>
<head>
</head>
<body >
hola<?php=$nombremateria?>angel
    
</body>

</hmtl>
"
;   
$pdf = new html2fpdf(); // Generamos un objeto nuevo html2fpdf   
$pdf -> AddPage(); // Añadimos una página   

$pdf -> WriteHTML($testo);// Indicamos la variable con el contenido que queremos incluir en el pdf   
$pdf -> Output('Archivo.pdf','D'); //Generamos el archivo "archivo_pdf.pdf". Ponemos como parametro 'D' para forzar la descarga del archivo.   
?>
alguien sabe cual es el error??? llevo toda la mañana buscandole y sigo igual, ya que mire otros temas con el mismo error, lo corregi y sigue saltandome eso.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 29/01/2010, 06:17
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Cannot modify header information - headers already sent by

Comprueba que no tengas espacios o cualquier otra cosa antes o despues de <?php ?>
__________________
Novato hablando, corregir si es necesario...
  #3 (permalink)  
Antiguo 29/01/2010, 06:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por dasuve Ver Mensaje
Comprueba que no tengas espacios o cualquier otra cosa antes o despues de <?php ?>
si eso ya lo cambie antes de todo, igual que poner <?php ?> en vez de <? ?> .... y seguia igual
  #4 (permalink)  
Antiguo 29/01/2010, 06:35
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Cannot modify header information - headers already sent by

Tienes código html antes del php?
__________________
Novato hablando, corregir si es necesario...
  #5 (permalink)  
Antiguo 29/01/2010, 06:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por dasuve Ver Mensaje
Tienes código html antes del php?
no solo tengo el codigo que ves puesto hay, no tengo mas por ningun lado..
  #6 (permalink)  
Antiguo 29/01/2010, 06:49
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Cannot modify header information - headers already sent by

no puede haber ninguna salida en el navegador antes del header, es decir, ningún echo, ninguna etiqueta <html>, <head>
  #7 (permalink)  
Antiguo 29/01/2010, 06:56
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por AdrianSeg Ver Mensaje
no puede haber ninguna salida en el navegador antes del header, es decir, ningún echo, ninguna etiqueta <html>, <head>
pero donde esta el echo , html o head, porque ese es el codigo que tengo puesto y creo que no hay ninguno....
  #8 (permalink)  
Antiguo 29/01/2010, 06:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Cannot modify header information - headers already sent by

Lee esto
http://www.forosdelweb.com/wiki/PHP:...lready_sent%3F
y esto
http://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 29/01/2010, 07:07
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Cannot modify header information - headers already sent by

Abre el archivo con un editor hexadeciaml y verás que arriba del todo aparecera algo como ?#= o algo parecido debes de eliminarlo.
  #10 (permalink)  
Antiguo 29/01/2010, 07:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

gracias a todos, ya lo he conseguido que funcione y que nos alga el error, ahroa el error que me queda por solucionar es el de

FPDF error: Some data has already been output to browser, can't send PDF file

que no se porque no quiere crear un pdf, el codigo es ete por si alguno sabe:

Código PHP:
<?php 
include_once('configuracion.php');
include_once(
'html2fpdf.php');
include_once(
'fpdf.php');
// Guardamos en una variable el texto que contendra el pdf   
$testo 
"
<body >
hola<?php=$nombremateria?>angel
</body>
"
;   
$pdf = new html2fpdf(); // Generamos un objeto nuevo html2fpdf   
$pdf -> AddPage(); // Añadimos una página   
$pdf -> WriteHTML($testo);// Indicamos la variable con el contenido que queremos incluir en el pdf   
$pdf -> Output('Archivo.pdf','D'); //Generamos el archivo "archivo_pdf.pdf". Ponemos como parametro 'D' para forzar la descarga del archivo.   
?>
Un saludo y gracias de nuevo
  #11 (permalink)  
Antiguo 29/01/2010, 07:18
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Cannot modify header information - headers already sent by

Estás igual....revista esto...
__________________
Novato hablando, corregir si es necesario...
  #12 (permalink)  
Antiguo 29/01/2010, 08:08
 
Fecha de Ingreso: febrero-2005
Mensajes: 396
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: Cannot modify header information - headers already sent by

Seguramente en alguno de los ficheros que incluyes hay algún espacio al principio o al final de los tags php.

Un saludo

Zerjillo
  #13 (permalink)  
Antiguo 29/01/2010, 08:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por dasuve Ver Mensaje
Estás igual....revista esto...

Cita:
Seguramente en alguno de los ficheros que incluyes hay algún espacio al principio o al final de los tags php.

Un saludo

Zerjillo
el problema solo esta cuando meto la sentencia php, si la quito funciona perfectamente, el codigo que tengo con php es asi:

Código PHP:

<?php
include_once('configuracion.php');
include_once(
'html2fpdf.php');
include_once(
'fpdf.php');
// Guardamos en una variable el texto que contendra el pdf   
$testo="<?php=$nombremateria?>";
$pdf=new html2fpdf(); // Generamos un objeto nuevo html2fpdf   
$pdf->AddPage(); // Añadimos una página   
$pdf->WriteHTML($testo);// Indicamos la variable con el contenido que queremos incluir en el pdf   
$pdf->Output('Archivo.pdf','D'); //Generamos el archivo "archivo_pdf.pdf". Ponemos como parametro 'D' para forzar la descarga del archivo.   
?>
que es lo que le pueed fallar, porque lo raro es que si quito el php me lo muestre sin errorres ni nada.
  #14 (permalink)  
Antiguo 29/01/2010, 08:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Cannot modify header information - headers already sent by

Bueno si lo estas copiando integramente como lo tienes, sí tienes un espacio antes del <?php asegurate que la linea <?php esté en la primera linea y no en la segunda.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 29/01/2010, 08:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por abimaelrc Ver Mensaje
Bueno si lo estas copiando integramente como lo tienes, sí tienes un espacio antes del <?php asegurate que la linea <?php esté en la primera linea y no en la segunda.
si esta en la primera, fue un error cuando lo copie aqui...
  #16 (permalink)  
Antiguo 29/01/2010, 08:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por angelmadrid Ver Mensaje
el problema solo esta cuando meto la sentencia php, si la quito funciona perfectamente, el codigo que tengo con php es asi:

Código PHP:
<?php
include_once('configuracion.php');
include_once(
'html2fpdf.php');
include_once(
'fpdf.php');
// Guardamos en una variable el texto que contendra el pdf   
$testo="<?php=$nombremateria?>";
$pdf=new html2fpdf(); // Generamos un objeto nuevo html2fpdf   
$pdf->AddPage(); // Añadimos una página   
$pdf->WriteHTML($testo);// Indicamos la variable con el contenido que queremos incluir en el pdf   
$pdf->Output('Archivo.pdf','D'); //Generamos el archivo "archivo_pdf.pdf". Ponemos como parametro 'D' para forzar la descarga del archivo.   
?>
que es lo que le pueed fallar, porque lo raro es que si quito el php me lo muestre sin errorres ni nada.
  #17 (permalink)  
Antiguo 29/01/2010, 08:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Cannot modify header information - headers already sent by

Verifica tambien los include que no vaya a ser que tengas un echo o algo que esta enviando información al navegador. Verifica todos los include_once.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #18 (permalink)  
Antiguo 29/01/2010, 08:21
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Cannot modify header information - headers already sent by

Puede ser que el fallo esté en alguno de los includes...
__________________
Novato hablando, corregir si es necesario...
  #19 (permalink)  
Antiguo 29/01/2010, 08:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cannot modify header information - headers already sent by

Si configuracion.php sigue como lo pusiste en el primer mensaje. Fíjate que estás imprimiendo datos usando echo() en ese archivo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #20 (permalink)  
Antiguo 29/01/2010, 08:31
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

el include que modifique fue el fpdf.php este parrafo :


Código PHP:
//Download file
            
if(isset($HTTP_SERVER_VARS['HTTP_USER_AGENT']) and strpos($HTTP_SERVER_VARS['HTTP_USER_AGENT'],'MSIE'))
                
Header('Content-Type: application/force-download');
            else
                
Header('Content-Type: application/octet-stream');
            if(
headers_sent())
                
$this->Error('Some data has already been output to browser, can\'t send PDF file');
            
Header('Content-Length: '.strlen($this->buffer));
            
Header('Content-disposition: attachment; filename='.$name);
             echo 
$this->buffer;
            break;
        case 
'F'
ya que si dejo ese parrafo lo que hago es que me salte el error de que hay algo en la cabecera este error:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/ejemplo.es/web/pdf/22222/configuracion.php:12) in /usr/home/aulacive.es/web/pdf/22222/fpdf.php on line 1676
y si quito ese parrafo ya ese error no me sale , pero me sale el de que no puede realizar el pdf, todo esto no pasa si no meto la consulta php, no hace falta que borre nada del fpdf.php y se muestra perfectamente el pdf, el problema esta cuando muestro la consulta
  #21 (permalink)  
Antiguo 29/01/2010, 08:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cannot modify header information - headers already sent by

Pero no puedes mostrar la consulta como texto y a la vez generar el PDF, con eso estás corrompiendo el archivo. ¿Qué es lo que pretendes hacer exactamente?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #22 (permalink)  
Antiguo 29/01/2010, 08:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por David Ver Mensaje
Pero no puedes mostrar la consulta como texto y a la vez generar el PDF, con eso estás corrompiendo el archivo. ¿Qué es lo que pretendes hacer exactamente?
con todo esto intento mostrar en un pdf la consulta php que lleva una serie de datos como el nombre, apellidos y otros datos del usario , para hacer un certificado....
  #23 (permalink)  
Antiguo 29/01/2010, 08:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cannot modify header information - headers already sent by

Pero para eso debes usar el método Write de la clase y no tratar de enviar directamente al navegador usando echo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #24 (permalink)  
Antiguo 29/01/2010, 08:47
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por David Ver Mensaje
Pero para eso debes usar el método Write de la clase y no tratar de enviar directamente al navegador usando echo.
si claro utilizo el write de esta forma, pero aun asi me salta el error...

Código PHP:
<?
include('configuracion.php');
include(
'html2fpdf.php');
include(
'fpdf.php');
// Guardamos en una variable el texto que contendra el pdf   
$testo="<?php=$nombremateria?>";
$pdf=new html2fpdf(); // Generamos un objeto nuevo html2fpdf   
$pdf->AddPage(); // Añadimos una página   
$pdf->WriteHTML($testo);// Indicamos la variable con el contenido que queremos incluir en el pdf   
$pdf->Output('Archivo.pdf','D'); //Generamos el archivo "archivo_pdf.pdf". Ponemos como parametro 'D' para forzar la descarga del archivo.   
?>
  #25 (permalink)  
Antiguo 29/01/2010, 08:53
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Cannot modify header information - headers already sent by

Busca en otros includes... porque el error tiene que ser algo de eso ... :S postea todos los códigos uno por uno a ver
__________________
Novato hablando, corregir si es necesario...
  #26 (permalink)  
Antiguo 29/01/2010, 09:12
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por dasuve Ver Mensaje
Busca en otros includes... porque el error tiene que ser algo de eso ... :S postea todos los códigos uno por uno a ver

subo los archivos mas cortos porque el html2pdf y el fdp son demasiado largos y no caben.....:S :

configuracion.php

Código PHP:
<?php
$link
=mysql_connect('localhost','','');
if(!
$link)
{
die(
'No se pudo conectar: ' mysql_error());
}
$db=mysql_select_db("basededatos",$link)
or die(
"error");
$consulta=mysql_query("SELECT nombremateria from materias",$link);
while(
$rs=mysql_fetch_array($consulta))
{
echo 
$rs['nombremateria'];    
}
mysql_close($link);
?>
prueba_libreria.php

Código PHP:
<?
include('configuracion.php');
include(
'html2fpdf.php');
include(
'fpdf.php');
// Guardamos en una variable el texto que contendra el pdf   
$testo="<?php=$nombremateria?>";
$pdf=new html2fpdf(); // Generamos un objeto nuevo html2fpdf   
$pdf->AddPage(); // Añadimos una página   
$pdf->WriteHTML($testo);// Indicamos la variable con el contenido que queremos incluir en el pdf   
$pdf->Output('Archivo.pdf','D'); //Generamos el archivo "archivo_pdf.pdf". Ponemos como parametro 'D' para forzar la descarga del archivo.   
?>
  #27 (permalink)  
Antiguo 29/01/2010, 09:46
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Cannot modify header information - headers already sent by

Código PHP:
echo $rs['nombremateria']; 
Puede ser por esta linea?
__________________
Novato hablando, corregir si es necesario...
  #28 (permalink)  
Antiguo 29/01/2010, 09:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

Cita:
Iniciado por dasuve Ver Mensaje
Código PHP:
echo $rs['nombremateria']; 
Puede ser por esta linea?

No por esa linea no es, porque si la quito, se me crea el pdf pero no se muestra la consulta.
  #29 (permalink)  
Antiguo 29/01/2010, 09:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Cannot modify header information - headers already sent by

Es que esa linea es el problema, ya se te ha indicado que no puedes enviar información al navegador antes. Te sugiero que ingreses esos valores en una variable y luego lo llames como debe ser.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #30 (permalink)  
Antiguo 29/01/2010, 09:58
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cannot modify header information - headers already sent by

vale ya si lo que quereis decir ambos, si me lo poneis en un ejemplo os estarias muy agardecidos, mirar vuestros privados que os envie, un saludo.

Etiquetas: header, modify
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 14:47.