Warning: Cannot modify header information – headers already sent

10
jun
18
2008
PHP

Estoy trabajando en un desarrollito con PHP, y me surgió el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at /servidor/archivo.php:07) in /servidor/directorio/archivo.php on line 666

Buscando por ahí, leí que es un un error conocido como “whitespace problem” o problema del espacio en blanco. Se debe a que algunos editores de texto agregan espacios en blanco o líneas vacías al final de un archivo tras ser editado.

Aparentemente se da muy seguido ya que devuelve bastantes resultados en Google, tanto con algunas palabras clave del error como con “whitespace problem php“. Dejo la solución por si a alguno le pasa. Es tan simple como remover el espacio en blanco al final del archivo (el que que describe en “output started at”) en la línea que se indica.

Me pasó una vez sola por ahora con Geany, pero nunca había pasado. De todas formas, lo edité con Vim por las dudas, y el problema no volvió a presentarse.

En los comentarios Imzyos nombra una situación más donde se puede dar este error y Tuxie explica más en detalle el problema.

Comparte:
  • Print
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Tumblr
  • Twitter

10 comentarios para “Warning: Cannot modify header information – headers already sent”


  1. Firefox 3.0Windows XP

    Vaya si es un problema, a mi me tuvo un rato buscándole la solución, como nota, si bien en general la solución es buscar el espacio en blanco, hay otro forma en que se puede este warning de php y es que algunos editores agregan el BOM al archivo y al no ser capaces de mostrarlo permanece invisible


  2. Galeon 2.0.4Debian GNU/Linux

    Ok, veamos de nuevo el error, detengamonos un momento en esta parte “on line 666″…

    Que me ha corrido un frio a todo lo largo de /dev/backbone…

    Esto es claramente obra de algun ente maligno que vive en /dev/shadows…

    cuidadin cuidadin…
    :)


  3. Debian IceWeasel 3.0Debian GNU/Linux

    En realidad el problema esta al comienzo del archivo, no al final. El tema es que primero manda los headers, luego la data que ve el usuario. Si ya se mandó data, no puede “volver hacia atras” por eso tira ese error.

    Es muy común que suceda por un espacio en blanco o una línea en blanco al comienzo del archivo en cuestión y te roba varias horas y dolores de cabeza encontrarlo. Otra perlita de PHP…

    Saludos!


  4. Debian IceWeasel 2.0.0.14Debian GNU/Linux

    jk: JAJAJA! Me mató lo de /dev/backbone y /dev/shadows! En verdad lo escribí yo de gusto, no había error en esas líneas…

    Imzyos, tuxie, gracias por extender el conocimiento, edité el post e hice referencia a sus comentarios.

    Saludos y gracias por comentar!


  5. Firefox 2.0.0.14GNU/Linux

    Una buena práctica es nunca cerrar con ?> los archivos, ya que el intérprete de PHP no lo requiere. De ese modo nunca tendrás espacios al final. Se recomienda, por ejemplo, en el “Coding Standard” de Zend Framework: http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html


  6. Firefox 2.0.0.14Windows XP

    Otra perlita de PHP…

    PHP es flexible, muy flexible, y eso permite que pueda ser usado de una forma poco correcta… pero eso no es un defecto atribuible al lenguaje.

    Una buena práctica es nunca cerrar con ?> los archivos, ya que el intérprete de PHP no lo requiere. De ese modo nunca tendrás espacios al final. Se recomienda, por ejemplo, en el “Coding Standard” de Zend Framework: http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html

    Lo que yo recomendaría es utilizar PHP para lo que sirve, programar. Programar lo que hace la aplicación, no lo que se ve… es decir, utilizar un sistema de plantillas para la presentación del contenido, para la vista de la aplicación. Ver un sólo echo, printf o similar por el código es sin duda un ejemplo de que esa aplicación está mal diseñada.


  7. Debian IceWeasel 3.0Debian GNU/Linux

    David, Sanva, gracias por los aportes. En verdad no he programado mucho en PHP, más que un semestre en la carrera, y alguna otra cosa chica como proyecto personal.
    Pero me gusta bastante el lenguaje y el entorno web, así que en algún momento pienso ponerme en serio con PHP. Todavía tengo mucho que aprender al respecto.

    PHP es flexible, muy flexible, y eso permite que pueda ser usado de una forma poco correcta… pero eso no es un defecto atribuible al lenguaje.

    Estoy de acuerdo con eso, es el arma de doble filo de los lenguajes flexibles.


  8. Internet Explorer 7.0Windows XP

    a muchas personas les suele pasar que crean un nuevo archivo php en dreamweaver o frontpage y escriben el codigo php dentro de las etiqutas es cuando les puede sacar tambien este error “Warning: Cannot modify header information – headers already sent by (output started at /servidor/archivo.php:07) in /servidor/directorio/archivo.php on line 666″ el codigo php para un email por ejemplo debe ser sin etiquetas html.


  9. Google Chrome 4.1.249.1045Windows 7

    Gracias, estaba vuelto loco buscando por toda la red la solución a este problema. Resulta que yo uso el editor Notepad++ y estaba guardando los archivos usando un formato UTF-8. Cambie la opcion de formato a UTF-8 sin BOM, guarde el archivo que me indicaba el error con dicho formato y listo! problema resuelto! :)

Dejar un comentario