<Complet PHP HTTP Référence
Définition et utilisation
L' en- header() fonction envoie un en- tête HTTP brut à un client.
Il est important de noter que la header() doit être appelée avant toute sortie réelle est envoyée (en PHP 4 et versions ultérieures, vous pouvez utiliser en mémoire tampon de sortie pour résoudre ce problème):
<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
Syntaxe
header(string,replace,http_response_code)
Paramètre | La description |
---|---|
string | Champs obligatoires. Indique la chaîne d'en-tête d'envoyer |
replace | Optionnel. Indique si l'en-tête doit remplacer précédent ou ajouter une deuxième tête. Par défaut est TRUE (will replace) . FALSE (allows multiple headers of the same type) en- (allows multiple headers of the same type) |
http_response_code | Optionnel. Force le code de réponse HTTP à la valeur spécifiée (available in PHP 4.3 and higher) |
Conseils et notes
Note: Depuis PHP 4.4 cette fonction empêche plus d'un en- tête à envoyer à la fois. Ceci est une protection contre les attaques par injection d'en-tête.
Exemple 1
Empêcher la mise en cache de la page:
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Note: Il y a des options que les utilisateurs peuvent définir pour modifier les paramètres de mise en cache par défaut du navigateur. En envoyant les en-têtes ci-dessus, vous devez remplacer l'un de ces paramètres et forcer le navigateur à ne pas mettre en cache!
exemple 2
Que l'utilisateur est invité à enregistrer un fichier PDF généré (en-tête Content-Disposition est utilisé pour fournir un nom de fichier recommandé et forcer le navigateur pour afficher la boîte de dialogue Enregistrer):
<?php
header("Content-type:application/pdf");
// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// The PDF source is in original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Note: Il y a un bogue dans Microsoft Internet Explorer 5.5 qui empêche ce de travailler. Le bogue peut être résolu par la mise à niveau vers le Service Pack 2 ou version ultérieure.
<Complet PHP HTTP Référence