miércoles, 19 de junio de 2013

Warning: Cannot modify header information - headers already sent by...

Situación:

Aparece este error en nuestro servidor de PHP:


Warning:  Cannot modify header information - headers already sent
 by (output started at 
/home/dominio/public_html/includes/functions/incrustaciones.php:496)
 in /home/dominio/public_html/general.php on line 108

Entendiendo el Problema:

En PHP podemos incrustar codigo para funciones recurrentes, esto lo hacemos con los siguientes comandos: include_once('archivodefunciones.php'), require('archivodefunciones.php').

Estos archivos incrustados solo deben contener PHP, y debemos asegurarnos que tanto al comienzo como al final se usen los TAG de código para determinar el contenido del archivo.  Estos tag son <?php al comienzo y ?> al final, entonces una estructura de un archivo incrustado debe ser:

Al comienzo:




Y al final:



Causas del problema:

El error se genera cuando hay contenido luego del cierre del archivo incrustado.  Es decir, el mensaje de eeror nos indica que debemos revisar el archivo incrustaciones.php (segun nuestro ejemplo), y debemos mirar al final del documento.  En pocas palabras encontraremos el archivo con el siguiente final:



Solución:

Hay dos maneras de solucionar el problema:
  1. Quitando el contenido restante luego del Tag de cierre de código.
  2. Quitando el Tag de cierre de código, indicando que el código de PHP no se ha terminado.
 

No hay comentarios:

Publicar un comentario

7 razones para no usar Laravel en tu proyecto de PHP

En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...