headers_sent
(PHP 3>= 3.0.8, PHP 4 , PHP 5)
headers_sent --
Indique si les en-têtes HTTP ont déjà été
envoyés
Description
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 1. Exemple avec headers_sent()
<?php
// Si aucun en-tête n'a été envoyé, envoyons-en un if (!headers_sent()) { header ('Location: http://www.nexen.net/'); 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.nexen.net/'); 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.nexen.net\">ici</a>.\n"; exit; }
?>
|
|
Voir aussi
ob_start(),
trigger_error() et
header() pour plus de détails sur les
tenants et aboutissants.