Foros del Web » Programando para Internet » PHP »

Saber si realmente se han enviado las cabeceras

Estas en el tema de Saber si realmente se han enviado las cabeceras en el foro de PHP en Foros del Web. Buenas, haciendo unas pruebas con header() me ha surgido la duda de cómo saber si realmente han sido enviadas en ambos casos. En el siguiente ...
  #1 (permalink)  
Antiguo 31/08/2011, 03:59
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Saber si realmente se han enviado las cabeceras

Buenas, haciendo unas pruebas con header() me ha surgido la duda de cómo saber si realmente han sido enviadas en ambos casos.

En el siguiente ejemplo, si bien headers_list() devuelve las que se han definido (que no enviado), headers_sent() informa de que no han sido enviadas:


Código:
<?php

    header("Status: 404 Not Found");

    //flush();

    print_r( headers_list() );

    if( headers_sent() == true )
        echo "<p>Se han enviado cabeceras</p>";
    else
    echo "<p>No se han enviado cabeceras</p>";
?>
Descomentando flush() para enviar lo que queda pendiente en el buffer, sí se reconocen como enviadas.

Con ello, me surge de si lo mejor es usar headers_sent() para estar completamente seguros de que han sido enviadas, y headers_list() para comprobar si han sido definidas (después de usar flush() continúan estándolo)... ¿se me escapa algo?

Gracias
  #2 (permalink)  
Antiguo 31/08/2011, 04:05
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Respuesta: Saber si realmente se han enviado las cabeceras

Ya mismo me respondo, efectivamente headers_list() sólo muestra que están definidas:

Código:
will return a list of headers to be sent to the browser / client. To determine whether or not these headers have been sent yet, use headers_sent().

Etiquetas: cabeceras, enviado, realmente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:04.