Manuel PHP

headers_sent

(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 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.

Example#1 Exemple avec headers_sent()

  1. <?php
  2.  
  3. // Si aucun en-tête n'a été envoyé, envoyons-en un
  4. if (!headers_sent()) {  
  5. header ('Location: http://www.example.com/');  
  6. exit;  
  7. }  
  8.  
  9. // Voici un exemple d'utilisation des paramètres optionnels de fichier et de ligne
  10. // disponibles depuis PHP 4.3.0. Notez que $filename et $linenum sont
  11. // transmis pour utilisation ultérieure. Ne les assignez pas avant de les utiliser.
  12. if (!headers_sent($filename, $linenum)) {  
  13. header ('Location: http://www.example.com/');  
  14. exit;  
  15.  
  16. // Vous allez probablement déclencher une erreur ici
  17. } else {  
  18.  
  19. echo "Les en-têtes ont déjà été envoyés, depuis le fichier$filenameà la ligne$linenum\n" .  
  20. "Il est donc impossible de vous rediriger automatiquement, aussi veuillez
  21. cliquez <a href=\"http://www.example.com\">ici</a>.\n";  
  22. exit;  
  23. }  
  24.  
  25. ?> 

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

L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog