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.
 

Calcular edad con la fecha de nacimiento en PHP

 En este tutorial, aprenderemos cómo calcular la edad a partir de la fecha de nacimiento en PHP. Daré dos ejemplos de Cómo calcular la edad....