Warning: Cannot modify header information – headers already sent by (…)

Partagez si vous aimez ->

Comment résoudre cette erreur ? Cette phrase bizarre, d’un anglais obscur, ne vous est peut-être pas complètement inconnue… Il s’agit d’une erreur PHP assez commune.

Warning: Cannot modify header information – headers already sent by (…)

Les erreurs PHP sont sources d’angoisse pour qui n’y comprend rien. Mais comme dit le dicton:

La peur n’évite pas le danger

Alors, autant être bien préparé! Rassurez-vous, c’est moins compliqué que ça en a l’air.

Que signifie cette erreur ?

Littéralement, cette erreur indique que le « header » a déjà été envoyé. Mais c’est quoi le « header » ?
Quand une page est véhiculée sur le web, elle est identifiée par un ensemble de données rassemblé dans ce qu’on appelle le « header ». Cela n’a RIEN A VOIR avec le code compris entre les balises « <head> » du code source de votre page.
Et oui, ce n’était pas assez compliqué comme ça, il faut en plus que les mêmes noms soient employés plusieurs fois….

Vous savez à présent que le header a été envoyé deux fois…mais d’où ça vient ?

Quand intervient cette erreur ?

La plupart du temps, l’erreur « Warning: Cannot modify header information – headers already sent by (…) » est provoquée par l’envoie d’un espace blanc au milieu du code PHP. Et c’est tout ?

Oui c’est tout. C’est ça la programmation : une virgule en moins, un espace blanc en plus, et tout fiche le camp !

Comment résoudre l’erreur « Warning: Cannot modify header information – headers already sent by » ?

Si vous ne connaissez rien au code

Cette erreur peut survenir après l’ajout d’un plugin. Désactivez le plugin pour voir si tout revient dans l’ordre. Et si vous n’avez plus accès au back-office ? Comment faire ?

Heureusement, votre site sera toujours accessible en FTP. Munissez-vous de votre programme FTP favoris (FileZilla par exemple) et naviguez jusqu’au répertoire des plugins.

Sur WordPress, il s’agit de /wp-content/plugins mais cette manipulation est valable pour tous les sites web, qu’ils soient construits avec WordPress ou pas.

Renommez le dossier du plugin suspect. Le fait de renommer « casse » le chemin que votre site prenait pour faire fonctionner ce plugin. En conséquence: il est désactivé.

Si tout n’est pas rentré dans l’ordre à ce stade, essayez de désactiver d’autres plugins. Et concentrez-vous: êtes-vous sûr de n’avoir pas touché au code PHP ? Ne serait-ce qu’un seul fichier (functions.php par exemple)…

Pensez toujours à faire une sauvegarde (en téléchargeant TOUT votre site via FTP sur votre ordinateur) avant toute manipulation risquée.

Si vous êtes développeur ou bidouilleur

Vous avez sûrement inclus un espace blanc dans l’un de vos fichiers. Une astuce pour le retrouver plus vite ?

Cet espace blanc se situe :

  • soit en début de fichier: AVANT la balise <?php
  • soit en fin de fichier: APRES la balise ?>

Vous vous doutez de la suite, il faut ouvrir chaque fichier et vérifier manuellement.

Pourquoi cette erreur est-elle déclenchée ?

Cette explication est technique, elle vous permet de mieux comprendre comment fonctionne une page PHP.

Le code PHP est toujours écrit entre des balises PHP, comme ceci: creation de site web

Certains fichiers .php sont employés pour gérer l’affichage de vos pages ou de vos articles. En plus du code PHP, ils contiennent en dehors des balises PHP, du code HTML (ex: H1) qui sera affiché par le navigateur (on appelle ça une « sortie HTML »). Par exemple, pour afficher le titre d’une page: Warning Cannot modify header information
Typiquement, le fichier index.php qui représente la page d’accueil de votre site, fait partie de ces fichiers.

D’autres au contraire sont utilisés comme bibliothèques de fonctions et ne contiennent que du code PHP (Les utilisateurs de WordPress reconnaitront le cas de functions.php). Ces fichiers ne sont pas censés émettre de « sortie HTML ». Or, tout espace en dehors des balises PHP est considéré comme une sortie HTML: votre navigateur essayera de l’afficher et cela « cassera » votre code.

En résumé

Il ne doit y avoir aucun espace blanc ni saut de ligne en dehors des balises PHP, dans les fichiers qui ne gère pas l’affichage.

Vous savez à présent comment résoudre l’erreur « Warning: Cannot modify header information – headers already sent by ». La manipulation n’est pas forcément aisée mais cette explication vous donne une bonne base pour chipoter un peu et vous faire aider « en arrivant avec un bagage ». En effet, c’est toujours mieux, quand on se pointe sur un forum, d’avoir déjà un début de réponse.

Partagez si vous aimez ->

Youcef

Concepteur de Sites Web et entrepreneur, l'écriture et la pédagogie font aussi partie de mes passions. Mon objectif est de vous aider à trouver la solution idéale pour créer votre propre Site Internet.

Vous aimerez aussi...

3 réponses

  1. Bonjour,
    Merci beaucoup pour votre aide.
    Une erreur toute bête à corriger.
    Jonathan

  2. Misterindex dit :

    Le pb peut venir aussi d’un encodage UTF-8 VS ANSI

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Simple Share Buttons