Función header() de PHP

Definición y uso

La función header() envía encabezados HTTP originales al cliente.

Es importante reconocer que se debe llamar a la función header() antes de que se envíe cualquier salida real (en PHP 4 y versiones superiores, puede usar el almacenamiento en caché de salida para resolver este problema):

<html>
<?php
// Error en el resultado
// Ya hay salida existente antes de llamar a header()
header('Location: http://www.example.com/');
?>

Sintaxis

header(string,replace,http_response_code)
Parámetros Descripción
string Obligatorio. Especifica la cadena de encabezado que se enviará.
replace

Opcional. Indica si el encabezado debe reemplazar el encabezado anterior o agregar un segundo encabezado.

Por defecto es true (reemplazo). false (permite múltiples encabezados del mismo tipo).

http_response_code Opcional. Forzar el código de respuesta HTTP a un valor especificado. (Disponible en PHP 4 y versiones superiores)}

Sugerencias y comentarios

Comentarios:Desde PHP 4.4 en adelante, la función previene el envío de múltiples encabezados a la vez. Esto es una medida de protección contra ataques de inyección de encabezados.

Ejemplo

Ejemplo 1

<?php
// Fecha en el pasado
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");

?>
<html>
<body>
...
...

Comentarios:El usuario puede configurar algunas opciones para cambiar la configuración de caché predeterminada del navegador. Al enviar los encabezados anteriores, puede sobrescribir cualquier configuración de estos, forzando al navegador a no cachear!

Ejemplo 2

Sugerencia al usuario para guardar un archivo PDF generado (el encabezado Content-Disposition se utiliza para proporcionar un nombre de archivo recomendado y hacer que el navegador muestre un cuadro de diálogo de guardado):

<?php
header("Content-type:application/pdf");
// El archivo se llamará downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// La fuente PDF está en original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...

Comentarios:Microsoft IE 5.5 tiene un bug que impide que funcione este mecanismo. Actualizando a Service Pack 2 o una versión superior, se puede resolver este bug.