Error: Headers already sent


Es común no saber de dónde proviene el error "Headers already sent" cuando lo vemos en el log de errores o en alguna parte del sitio como tal. Sin embargo, típicamente el error proviene porque:

Las funciones que envían o modifican HTTP Headers deben ser invocadas ANTES de cualquier output.

Algunas funciones para modificar los HTTP Headers son:

  •  header / header_remove
  •  session_start / session_regenerate_id
  •  setcookie / setrawcookie


Un Output puede ser:

  • Sin intención:
  • Espacio en blanco ANTES de <¿php or después de ?>
  • Mensajes de Error Previos
  • UTF-8 Byte Order Mark (caracter invisible a la mayoría de los procesadores de texto pero que implica error)

 

  • Intencionales:
  • print, echo o alguna otra función que produzca un Output
  • Secciones <html> antes del código <?php


¿Cómo encontrar el dónde ocurrió el Output prematuro?

Tendremos un error como éste:

Warning: Cannot modify header information - headers already sent by (output started at /home/usuario/public_html/index.php:2) in /home/usuario/public_html/index.php on line 17.

Punto 1: En dicho mensaje de error podemos saber que en la línea 17 es donde el Header es invocado con fallo.

Punto 2: Donde comienza el parentésis con la mención del Output encontraremos la línea donde está el Output prematuro. En este caso, en la línea 2. 

Es importante definir con tu programador o diseñador cuál es la razón concreta de tu caso.

  • 0 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Artículos Relacionados

IP Bloqueada

El Bloqueo de una IP concreta ocurre mayormente por los siguientes dos escenarios:1) Se ha...

500 Internal Server Error

¿Tu sitio muestra el error "500 Internal Server Error", y no sabes cómo resolverlo?Aquí te...

User Over Quota

  En este caso el problema es que tu cuenta completa de cPanel y/o el buzón específico de email...

503 Error

¿Cuáles son las causas del Error 503? Normalmente el problema se plantea así:Si intentas enviar...

403 Forbidden

El Error 403 normalmente tiene relación con un contenido prohibido por el servidor (o la carpeta...