Evitar headers already sent

Dificultad: (2/4) (Medio-Fácil)1100 Visitas: 754
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:

Codigo fuente @PHP
  1. header("Location: xxxx.php");
Programado en PaNa-S.com
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:
Codigo fuente @JAVASCRIPT
  1. <script type="text/javascript">location.href='http://www.xxxxx.com/pagina.php';</script>
Programado en PaNa-S.com
c) Usando una redireccion HTML, para usar esta redireccion solo hace falta usar este código:
Codigo fuente @HTML4STRICT
  1. <meta http-equiv="refresh" content="0;URL=indice.html">
Programado en PaNa-S.com
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:
Codigo fuente @PHP
  1. <? ob_start(); ?>
  2. <html>
  3. <!-- Ojo ya hemos escrito algo, ya daria error de headers -->
  4. <?
  5. header("Location: index.php");
  6. ?>
Programado en PaNa-S.com
Si ejecutáis el código anterior observareis que redirige sin ningún problema.

Evitar headers already sent está en la categoría: PHP

Bookmark and Share
Puntuado 2.84/5 (56.74%) (43 Votos)
Escribe un comentario

No hay comentarios

Escribe tu comentario

Imagen Anti-Spam

Últimos tutoriales

Últimos scripts

Enlaces

Nube de tags

  cperdidas     moviles     overclocking     seo     android     bank4droid     herramientas     java     php     cbrutonoti     css     jtuenti     windows     modding     xhtml     mac     htc magic     messenger     htc diamond  

El contenido de esta página requiere una versión más reciente de Adobe Flash Player.

Obtener Adobe Flash Player



Generado desde cero con PHP y MySQL. Valid XHTML/CSS/RSS   
Technology Top Blogs DigNow.net Technology blogs & blog posts

Quantcast