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.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
