Ralentissement PC

L'erreur "Headers already sent by"

Liens commerciaux :

Il vous est surement arrivé au moins une fois d'avoir cette erreur sur l'un de vos scripts. En fait ce message d'erreur signifie que vous tentez de modifier les en-têtes (headers) d'une page aprés avoir effectué une sortie vers le navigateur (envoi d'au moins un caractère au navigateur, même un espace). Le code HTML doit toujours être envoyé après la dernière modification sur les en-têtes.

Exemple incorrect :


<?php
echo
'test';
header('location:page.php'); //le texte "test" a déjà été envoyé au navigateur, il y aura donc une erreur
?>

Voici maintenant deux autres exemples corrects (le "echo" ne figure plus dans le premier exemple car il est inutile d'afficher une information avant une redirection, le visiteur sera redirigé avant d'avoir vu la moindre chose) :


<?php
header
('location:page.php'); //Pas d'erreur
?>

Et le deuxième exemple correct lui aussi, car nous utilisons la bufferisation de sortie qui permet de modifier les en-têtes n'importe où dans le code :


<?php
ob_start
();
echo 'test';
header('location:page.php'); //Exemple correct
ob_end_flush();
?>

Voilà ! l'erreur des headers already sent devrait avoir disparue.

A propos de cet article
Sondage

Vous utilisez :

(4 choix possibles)

Aide informatique | Communauté d'entraide informatique | Aide informatique | Forum d'assistance informatique | Forum-Vista | Formation informatique | Forum Informatique | Devenir partenaire