« | »
Sep'08
3

¿Cómo solucionar este error?

Warning: Cannot modify header information – headers already sent by…

Antes de nada hemos de saber que este error aparece cuando intentamos modificar el “header” de una página web después de que éste haya sido ya enviado, razón por la cual hemos de hacer todos los cambios en la cabecera antes incluso de enviar cualquier etiqueta HTML, ya que esto provocaría el envío del “header”.
Algunas etiquetas HTML típicas:

<html>
<head>
</head>
<body>
</body>

</html>

Pues bien, para solucionar este problema, he encontrado una función de php que habilita el uso del búfer de salida, lo cual quiere decir que mientras no se haya cerrado dicho buffer, el servidor no “escribirá” el código HTML resultante de interpretar el código php. para usar esta función, deberíamos dejar todo el código entre dos funciones, ob_start() y ob_end_flush(), de tal modo que se guarda toda la información el el búfer de desde la primera hasta la segunda función.

Un ejemplo:

<?php
	session_start();
?>

Mientras el código anterior daría un error como el del título, los dos siguientes presentan las posibles soluciones:

<?php
	session_start();
?>
<html>
<head>
</head>
<body>
</body>
</html>
<?php
	ob_start();
?>
<html>
<head>
<?php
	session_start();
?>
</head>
<body>
</body>
<?php
	ob_end_flush();
?>
</html>

La primera solución es sin duda la más sencilla, modificar los headers antes de que se imprima ninguna etiqueta, pero no siempre es tan fácil aplicar dicha solución, ya que, sobre todo cuando se trabaja mucho con cookies, no es factible en ocasiones (al menos sin complicarse mucho la vida) modificarlo al inicio del archivo, por lo que se puede optar por la segunda solución en estas ocasiones.

Si disfrutaste del artículo, puedes suscríbete a nuestro feed RSS
Etiqueta(s):
Categoría(s): Manuales, Programación
Si te gustó este artículo o bien deseas seguirnos diariamente tal vez desees suscribirte a nuestro canal RSS vía email o bien vía lector de feeds. Recuerda que si usas tu email debes verificar la activación de tu suscripción (si tarda mucho revisa en tu carpeta spam).
Puedes dejar un comentario, o hacer un Trackback desde tu sitio.

2 comentarios en “Warning: Cannot modify header information – headers already sent by…”

  1. Noemi says:

    Es la primera vez que dejo un comentario, quiero agradacerte, ya que tu articulo me sirvio de mucho para solucionar el error,habia investigado y nada de las soluciones que se daban me sirvio. Me sacaste de un gran apuro
    Muchisimas Gracias!!! ;)

Deje su comentario

XHTML: Puedes utilizar algunos códigos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

« | »