La plupart des messages d’erreur de WordPress vous donnent une idée de ce qui cause des problèmes sur votre site. L’erreur « Warning : cannot modify header information – headers already sent by » ne fait pas exception à la règle. Si un fichier PHP ne peut pas être exécuté en raison d’un problème dans son code, vous rencontrerez ce message.

Il y a plusieurs causes potentielles à l’erreur « cannot modifiy header information». Heureusement, le message lui-même vous indique quel fichier est à l’origine du problème. Il indique même la ligne de code qui contient le problème.

Dans cet article, nous allons parler de cette erreur et de ses causes. Ensuite, nous passerons en revue deux façons dont vous pouvez résoudre le problème. Mettons-nous au travail !

Quelles sont les causes de l’erreur « Cannot mmodify header information – Headers already sent by » ?

Comme nous l’avons déjà mentionné, vous rencontrerez cette erreur lorsqu’un des fichiers .php de votre site ne peut pas être exécuté. WordPress s’appuie sur des fichiers .php, tels que wp-config.php et functions.php, pour ses fonctionnalités de base.

S’il y a un problème dans l’un des fichiers .php que votre site doit charger, vous verrez un message d’erreur qui ressemble à ceci :

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-config.php:#) in /home/public_html/wp-includes/file-example.php on line 33

Heureusement, l’erreur « Cannot modify headers information » fournit de nombreuses informations qui rendent le dépannage relativement simple. Le message vous indiquera deux fichiers : le premier contient le problème qui empêche le second de s’exécuter.

À la fin du message d’erreur, vous verrez une section qui dit « line XX ». Elle indique l’emplacement du code spécifique qui cause le problème.

En général, le problème dans le code PHP est assez facile à résoudre. Voici quelques causes courantes qui peuvent déclencher le message d’erreur :

  • Les espaces avant le <?php du code ou après la balise de fermeture ?>
  • Un bloc HTML avant la fonction d’en-tête de PHP
  • print ou echo ajoutés avant la fonction d’en-tête PHP
  • Problèmes avec le code d’une extension

Pour résoudre ce type d’erreurs, vous devez être au moins assez à l’aise pour modifier le code PHP. Vous n’aurez pas besoin d’ajouter de code vous-même.

Néanmoins, vous aurez peut-être besoin d’un peu d’aide supplémentaire pour identifier le problème. C’est particulièrement vrai si le problème n’est pas lié aux espaces ou aux déclarations avant la fonction d’en-tête PHP.

Comment résoudre le problème « Warning : Cannot Modify Header Information – Headers Already Sent By » (2 méthodes)

Il existe deux approches pour dépanner l’erreur « Cannot modify header information – headers already sent by. La première méthode ne vous demande pas de quitter le tableau de bord WordPress.

Cependant, la deuxième stratégie utilise FTP/SFTP si vous ne pouvez pas accéder au tableau de bord ou utiliser WordPress.

Commençons par la première méthode de dépannage.

1. Corriger l’erreur avec l’éditeur d’extension/thème ou remplacer une extension

La première chose à faire lorsque vous rencontrez l’erreur «Cannot modify headers information – headers already sent by » est d’ouvrir le fichier qui cause le problème. Ensuite, repérez la ligne que le message indique.

Par exemple, si vous voyez une erreur qui se lit comme ci-dessous, cela signifie que vous devez regarder dans le fichier functions.php de votre thème :

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/wp-content/themes/twentytwentyone/functions.php:#) in /home/public_html/wp-includes/file-example.php on line 1

Dans ce scénario, vous pouvez atteindre la source du problème en utilisant l’éditeur de thème WordPress. Pour y accéder, allez dans Apparence > Éditeur de thème.

Une fois que vous y êtes, utilisez le menu à droite pour sélectionner le fichier auquel vous devez accéder.

Fichier de fonctions du thème (functions.php).
Fichier de fonctions du thème (functions.php).

Si vous regardez bien, vous remarquerez plusieurs espaces avant la balise <?php . Le message d’erreur lui-même pointe vers la ligne numéro un. Cela vous indique donc que les espaces sont à l’origine du problème.

Dans cet exemple, tout ce que vous avez à faire est de supprimer les espaces et de cliquer sur Mettre à jour le fichier. Essayez maintenant de recharger votre site web, et l’erreur devrait avoir disparu.

Vous pouvez appliquer le même processus en utilisant l’éditeur d’extensions de WordPress (Extensions > Éditeur d’extension). Cette méthode est applicable si le message d’erreur pointe vers un fichier d’extension défectueux.

Vous pouvez aussi rencontrer une erreur qui indique l’un des fichiers de votre répertoire d’extension WordPress. Dans ce scénario, vous pouvez supprimer et réinstaller cette extension. Dans la plupart des cas, cela réglera le problème.

Cependant, n’oubliez pas que vous pourriez perdre la configuration de cette extension, selon l’outil que vous utilisez. Vous devrez donc peut-être configurer à nouveau le module.

2. Modifier le fichier problématique via FTP/SFTP

Dans certains cas, la source de l’erreur « Cannot modify header information – headers already sent by » ne se trouve pas dans un fichier auquel vous pouvez accéder à l’aide des éditeurs de thème ou d’extension de WordPress. Il se peut aussi que vous utilisiez un site n’utilisant pas WordPress.

Dans ces scénarios, votre meilleure option est d’accéder au fichier problématique en utilisant FTP/SFTP. Pour cela, vous devrez utiliser un client FTP ou SFTP tel que la plateforme FileZilla.

Vous devrez aussi avoir accès aux informations d’identification FTP/SFTP de votre site web. Dans la plupart des cas, vous devriez pouvoir les trouver dans votre panneau d’hébergement.

Si vous utilisez Kinsta, vous pouvez accéder à MyKinsta, sélectionner votre site web sous Sites et cliquer sur son onglet Info .

Détails SFTP dans MyKinsta.
Détails SFTP dans MyKinsta.

Une fois que vous avez les informations d’identification, utilisez votre client FTP ou SFTP pour vous connecter à votre site web. Vous devrez localiser le répertoire racine du site. En général, son nom devrait être root, public_html, public, ou le nom de votre propre site.

Voici un aperçu rapide de ce à quoi ressemble l’intérieur d’un répertoire racine WordPress.

Répertoire racine de WordPress.
Répertoire racine de WordPress.

Allez-y et localisez le fichier indiqué par l’erreur « Cannot modifiy header information – headers already sent by ». Par exemple, si le problème est public/wp-config.php, faîtes un clic droit sur le fichier et sélectionnez l’option Afficher/Modifier .

Cliquez sur le fichier wp.config.
Cliquez sur le fichier wp.config.

Cette option ouvrira le fichier sélectionné en utilisant votre éditeur de texte par défaut. Une fois le document ouvert, localisez le problème en allant jusqu’à la ligne vers laquelle le message d’erreur vous a dirigé.

Cherchez la ligne avec le message d'erreur.
Cherchez la ligne avec le message d’erreur.

Si vous n’arrivez pas à repérer l’erreur, vous devrez peut-être consulter quelqu’un qui a l’habitude de travailler avec des fichiers PHP. Toutefois, supposez que vous avez affaire à un problème d’espace ou à une déclaration avant l’en-tête PHP. Dans ce cas, vous devriez être capable de résoudre le problème par vous-même.

Une fois que vous avez terminé, enregistrez les modifications apportées au fichier et fermez le client FTP/SFTP. Essayez d’accéder à nouveau à votre site web et l’erreur devrait avoir disparu.

Résumé

L’erreur « Warning : cannot modify header information – headers already sent by » peut être intimidante car elle affiche un long message. Cependant, ce message d’erreur détaillé rend ce bogue relativement simple à dépanner. Contrairement à d’autres problèmes, celui-ci est assez sympa pour vous dire quel fichier en est la cause et quelle ligne de code vous devez examiner.

Selon le fichier à l’origine de l’erreur, il y a deux façons de la résoudre :

  1. Corriger l’erreur en utilisant l’éditeur d’extension/thème ou remplacer une extension.
  2. Modifier le fichier problématique via un client FTP/SFTP.

Trouver la source de cette erreur est simple. Cependant, la réparer peut être un problème si vous n’êtes pas familier avec PHP.

Vous avez toujours des problèmes pour réparer cette erreur ? Partagez votre expérience avec notre communauté dans les commentaires ci-dessous !

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.