headers_list
<<<
headers_sent setcookie
>>>

6.13 HTTP
6 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
header
headers_list
->headers_sent
setcookie
setrawcookie

6.13.9 headers_sent() Indique si les en-têtes HTTP ont déjà été envoyés

[ Exemples avec headers_sent ]   PHP 3 >= 3.0.8, PHP 4, PHP 5

bool  headers_sent ( string   file , int   line )

headers_sent retourne TRUE si les en-têtes HTTP ont déjà été envoyés, et FALSE sinon. Si les paramètres optionnels file et line sont fournis, headers_sent va placer le nom du fichier source et le numéro de ligne qui ont débuté l'affichage, dans les variables file et line .

Vous ne pouvez plus envoyer d'en-têtes avec la fonction header une fois que le bloc d'en-tête a été fermé. En utilisant cette fonction, vous pouvez au moins éviter de voir s'afficher les erreurs HTTP reliées. Une autre option consiste à utiliser le contrôle de sortie .

Note

Les paramètres optionnels file et line ont été ajoutés en PHP 4.3.0.

Exemple avec headers_sent

<?php

// Si aucun en-tête n'a été envoyé, envoyons-en un
if (!headers_sent()) {
    
header ('Location: http://www.example.com/');
    exit;
}
  
// Voici un exemple d'utilisation des paramètres optionnels de fichier et de ligne
// disponibles depuis PHP 4.3.0. Notez que $filename et $linenum sont
// transmis pour utilisation ultérieure. Ne les assignez pas avant de les utiliser.
if (!headers_sent($filename, $linenum)) {
    
header ('Location: http://www.example.com/');
    exit;

// Vous allez probablement déclencher une erreur ici
} else {

    echo
"Les en-têtes ont déjà été envoyés, depuis le fichier $filename à la ligne $linenum\n" .
          
"Il est donc impossible de vous rediriger automatiquement, aussi veuillez
          cliquez <a href=\"http://www.example.com\">ici</a>.\n"
;
    exit;
}

?>

Voir aussi ob_start , trigger_error et header pour plus de détails sur les tenants et aboutissants.

<< headers_sent >>
headers_list HTTP setcookie