Output buffering

En ocasiones queremos utilizar el comando header para que un script redirija el navegador a otra dirección pero nos da el siguiente error: Cannot add header information - headers already sent

Esto se debe a que HTML require que las sentencias HEADER se encuentren dentro de las etiquetas <head></head> para que sean procesadas por el navegador. El problema viene cuando es imposible por el flujo del programa que aparezca dentro de estas etiquetas.

Para solucionar este problema hay dos soluciones:

  • Modificar php.ini:
    output_buffering = On
  • Añadir al script los comandos de control de buffer:
    <?php ob_start(); ?>
    ...código html...
    <?php ob_end_flush() ?>

    Utilizando estos comandos el script se comportará como si output_buffering estuviese activado.
Sin categoría

Deja un comentario