mardi 29 janvier 2008
Warning: Cannot modify header information - headers already sent by ...
29 01 2008Une erreur si récurrente que tout le monde la pose encore sur tous les forum 
Les fonctions php telles que header(), setcookie() ou session_start() sont des fonctions qui manipulent les entêtes http d'une page. Les entêtes http sont là pour spécifier au navigateur client quel type de page il va devoir afficher.
Avant l'appel de ces fonctions il ne faut donc pas générer le moindre flux vers le client.
Que ce soit html ou bien un simple espace blanc ou saut de ligne avant la balise <?php, le serveur renverra l'erreur Warning: Cannot modify header information - headers already sent by ... (ou similaire) ne pouvant plus modifier les entêtes déjà envoyés.
Certains serveurs ne seront pas touchés si leur configuration php contient la variable output_buffering à on
Il est aussi possible de forcer la configuration grâce à une ligne dans un htaccess : PHP_FLAG output_buffering on Cela permet de faire patienter le flux (bufferisation) si une fonction devant modifier les header est appelée avant.
