Dificultad: (2/4) (Medio-Fácil)


Visitas: 752
Fecha: 2009-02-04 16:03:41
A todos alguna vez nos ha dado este error PHP, es un error muy común y la mayoría de veces no sabemos muy bien cómo evitarlo. La mayoría de veces es porque estamos redireccionando o usando session_start(); en un puto del código donde ya hemos "escrito" algo en la página. En este tutorial vamos a ver como evitar este error. Imaginemos que estas redireccionando con:
Antes que nada comprobaremos que no exista ningún espacio en blanco ni antes ni después de las tags que abren php es decir <? y >?, esto es un fallo muy común.
Existen varias opciones o formas de hacerlo:
a) Reescribir el código, dándole la vuelta (obviamente es tedioso...)
b) Usando una redirección javascript. Esta forma para mi gusto es un poco chapucera, pero, a veces nos saca del apuro. La forma de hacerlo es escribiendo esto justo donde queramos redireccionar:
c) Usando una redireccion HTML, para usar esta redireccion solo hace falta usar este código:
El content=0 son los segundos que tarda en refrescar.
d) Usando ob_start() y ob_end_flush. Hay una cuarta forma que funciona bastante bien. Solo tenemos que poner ob_start() al inicio del script y ob_end_flush() cuando terminemos de usar el header. Pongo un código que servirá de ejemplo:
Si ejecutáis el código anterior observareis que redirige sin ningún problema.
Evitar headers already sent está en la categoría:
No hay comentarios