Headers already sent: ¿Como Corregir este error?
Headers already sent: ¿Como Corregir este error?. Cuando desarrollamos con el lenguaje de programación PHP tarde o temprano nos encontraremos con estos errores y es así que en este artículo daremos solución a estos molestos mensajes de error. La salida intencional de las sentencias print y echo terminará la oportunidad de enviar encabezados HTTP. El flujo de la aplicación debe ser reestructurado para evitarlo correctamente.
Al ejecutar un script PHP nos muestra este error, y si recibe varios errores como este, Aquí tenemos la solución:
Warning: Cannot modify header information - headers already sent by (output started at /home/mainsite.php:12) in /home/mainsite.php on line 123
Las funciones que producen la salida incluyen
- print, echo, printf, vprintf
- trigger_error, ob_flush, ob_end_flush, var_dump, print_r
- readfile, passthru, flush, imagepng, imagejpeg
Headers already sent: ¿Como Corregir este error?
Áreas HTML sin procesar
Las secciones HTML analizadas en un archivo (. php) también son de salida directa. Las condiciones de secuencia de comandos que activarán una llamada de header
(), se deben anotar antes de cualquier bloqueen bruto.
Las respuestas HTTP siempre envían primero las cabeceras y después el propio contenido de la página. Si en tus scripts utilizas print
o echo
, PHP comienza a enviar la información al usuario y para ello obtiene todas las cabeceras HTTP establecidas hasta ese momento por el script.
Las principales causas de este error
1. Código HTML antes del código PHP
<!DOCTYPE html> <?php // Aquí ya no puedes modificar las cabeceras
2. Espacios en blanco normales antes del PHP
<?php // ERROR: ¡hay 1 espacio en blanco por delante de la etiqueta de apertura!
Otros ejemplos de Error
<?php //Espacios en blanco antes del inicio del PHP header("Content-Type: text/html; charset=UTF-8"); ?>
<html><!--Etiquetas HTML --> <body> <?php header("Content-Type: text/html; charset=UTF-8"); ?> </body> </html>
3. Espacios en blanco invisibles
Uno de los errores típicos más difíciles de descubrir se produce por el denominado BOM de UTF-8. Básicamente, si al guardas tus scripts de PHP los codificas en formato UTF-8, es posible que tu editor añada una secuencia de caracteres invisibles llamada Byte-Order-Mark (la secuencia en hexadecimal es EF BB BF).
4. Espacios en blanco después de la etiqueta de cierre
5. Errores producidos con anterioridad
Con esto daremos solución a estos molestos errores, si tienen duda no duden en comentar.
Referencia: