Tema: FAQ's de PHP
Ver Mensaje Individual
  #179 (permalink)  
Antiguo 15/06/2007, 08:26
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: FAQ's de PHP

Pregunta: ¿Por qué me sale "Warning: Cannot modify header information - headers already sent by (output started at [1]:[2]) in [3] on line [4]"

Se trata de un error bastante común y a veces difícil de detectar.
No se puede nunca enviar texto antes de enviar cabeceras HTTP (con header(), set_cookie() o session_start(). )

Esto quiere decir que no puede haber ningún "echo" o "printf" antes de una sentencia que envíe cabeceras, pero también quiere decir que no puede haber nada de código html ni texto antes de la primera aparición de <?php (o <? ) en un archivo php. A veces se nos escapa algún espacio o línea en blanco, y eso es suficiente para que se produzca el error.

¿Cómo arreglarlo? Usando la información del error mismo.
Más arriba marqué las partes que hay que revisar:
[1] - Ruta del archivo php que inició la salida (el que mandó texto)
[2] - Línea del archivo [1] en la que se produjo la salida.
[3] - Archivo que intentó enviar una cabecera, luego de que la salida comenzara (normalmente es el mismo que [1])
[4] - Línea de [3] en la que se intentó enviar la cabecera.

Basta ir a [2] y ver si se puede evitar el envío de texto.