Derniers tutoriels de développement web
 

PHP header() Function


<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