Solucionar el problema "Headers already sent" de PHP

Solucionar el problema Headers already sent de PHP

Solucionar el problema "Headers already sent" de PHP. Cuando estamos programando con el lenguaje PHP, en algunos casos tenemos que interactuar con el lenguaje de marcas HTML, abrir y cerrar etiquetas PHP y HTML. Sin embargo, cuando se compila nuestro trabajo en el servidor suelo encontrar con errores que describiremos a continuación.

Warning:
Cannot modify header information - headers already sent
by /some/file.php:19 in /some/archivo.php on line 23

Otro ejemplo de este error que suele presentarse a menudo en nuestros proyectos.

Warning: 
Cannot modify header information - headers already sent by 
(output started at /home/bolve/public_html/adm/ordenar.php:8)
in /home/bolve/public_html/adm/ordenar.php on line 28

¿Porque aparecen estos errores?

Porque nuestro código suele tener función de redirección header() y otros. Las funciones PHP que envían o modifican las cabeceras HTTP se deben ejecutar antes de que se haya empezado a enviar la página solicitada al usuario. Si no, se producirá el siguiente error:

Índice
    Relacionado  Numeros y letras aleatorios en PHP codigo

    Solucionar el problema "Headers already sent" de PHP

    Las funciones de PHP que modifican las cabeceras HTTP son todas las que mencionaremos a continuación:

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

    A) Detectar que las causa y como solucionarlo.

    1. Incrustar código HTML antes del código PHP (ejemplo: main.php)

    <!DOCTYPE html>
    <?php
        // Aquí ya no puedes modificar las cabeceras

    2. Espacios en blanco delante de la etiqueta de inicio del PHP

    <?php
    // ERROR: ¡Si hay 1 espacio en blanco delante de la etiqueta de inicio del PHP!

    3.Espacios en blanco no intencionados después de la etiqueta de cierre "?> "

    ¿Si por accidente se agrega un espacio en blanco después de la etiqueta de cierre “?>”, también puede producir este error al compilar el fichero. ¿La solución más idónea consiste en eliminar estos espacios al final de la etiqueta de cierre “?>” en los archivos PHP.

    Relacionado  ▷ Cargar y recortar imágenes usando PHP y jQuery

    B). Segunda manera de corregir estos errores.

    Una vez corregido los errores de los espacios en blanco y todavía genera este tipo de error, es hora de aplicar esta segunda opción muy funcional, probaremos añadiendo estas funciones al inicio de la etiqueta del PHP.

    // Colocar antes de cualquier código:
     
    <?php ob_start();?>
    

    Ahora también al final del Código PHP

    // al terminio del fichero
     
    <?php ob_end_flush(); ?>

    Con este arreglo, se pueden enviar los “headers” en cualquier lugar del documento, sin obtener estos errores mencionados líneas arriba.

    Le mostraremos en ejemplo completo de cómo debe quedar el código implementado para los espacios en blanco y aplicando función.

    En esta zona no debe haber espacios en blanco
    <?php
    
    echo "mis códigos";
    
    ?>
    Aca también no debe haber espacios en blanco.

    Aplicando función predefinida

    // Colocar antes de cualquier código:
    <?php ob_start();?>
    
    <?php
    echo "Mis Códigos!;
    ?>
     
    <?php ob_end_flush(); ?>
    // Colocar al final del documento PHP:
    Solucionar el problema Headers already sent de PHP
    Solucionar el problema Headers already sent de PHP

    Más: Headers already sent: ¿Como Corregir este error?

    Conclusión

    Espero que esta breve explicación les ayude en solucionar problemas en sus proyectos que estén realizando. saludos y éxitos.

    Relacionado  Top 13 errores MySQL que cometen los programadores

    Sistemas PHP

    Nestor Tapia

    Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

    Entradas Relacionadas

      6 Comentarios

    1. DIEGO ROSERO dice:

      Gracias por su ayuda, me estaba volviendo loco

    2. @Migueliose dice:

      Uffs, capo, funciona al 100%, gracias, muchas gracias 🙂

    3. Leyla dice:

      Muchas gracias, me funcionó de maravilla utilizar al inicio y al final del código

      1. Nestor Tapia dice:

        Genial

        Gracias por visitar el Blog

    4. Hola Nestor:
      Quiero incorporar algunos servicios en mi Web http://www.infovinos.es... que información necesitarías para hacerme un presupuesto... gracias.
      Un cordial saludo
      Juan Manuel García

      1. Nestor Tapia dice:

        Hola Juan Manuel,

        Escribeme a mi correo nestor@baulphp.com y detallame mediante un archivo de Word o PDF los cambios que desees realizar y de acuerdo a ese documento le realizare un presusupesto.

        Atentamente,
        Nestor Tapia

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir