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

De Foros del Web

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.


--alvlin 15 Jun 2007

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales