Help
Posted By Gregory

Avertissement PHP : impossible de modifier les informations d'en-tête


English version: PHP Warning: Cannot modify header information


Avertissement PHP : impossible de modifier les informations d'en-tête – les en-têtes sont déjà envoyés dans …

Parfois, vous pouvez voir ce message dans le journal des erreurs du serveur ou l'afficher sur une page Web. C'est frustrant et cela donne l'impression qu'il y a un problème avec le script PHP mentionné dans le message. En fait, ce message indique un problème (un bug) dans un autre script, un plugin ou un thème. Vous pouvez obtenir ce message si vous utilisez un plugin bogué et que l'affichage des erreurs PHP est activé, ce qui ne devrait normalement pas être le cas.

Ce message apparaît lorsqu'un morceau de code PHP sur un site Web génère une sortie, qui est généralement un message d'avertissement PHP qui ne doit pas être envoyé et affiché dans le navigateur des utilisateurs. Et cette sortie est envoyée avant qu'un en-tête de la page Web ne soit généré et envoyé au navigateur d'un utilisateur. L'en-tête d'une page Web peut être vide ou peut gérer des informations supplémentaires telles que des cookies.

Que l'en-tête soit vide ou non, il doit être envoyé avant tout contenu de page.

Si un plugin WordPress buggé génère un avertissement PHP avant que d'autres plugins n'envoient des en-têtes à un navigateur, cela entraîne une erreur de serveur avec le message « Avertissement PHP : Impossible de modifier les informations d'en-tête – les en-têtes sont déjà envoyés dans … » .

Un tel message peut induire en erreur n'importe qui car il n'indique pas quel script ou plugin a provoqué cette erreur. Lorsqu'un serveur Web détecte une sortie générée par un plugin sans en-tête envoyé, il crée automatiquement l'en-tête et l'envoie aux navigateurs, de sorte que tous les autres plugins qui ne s'attendent pas à un tel comportement ne peuvent pas envoyer leurs en-têtes s'ils en ont besoin.

Comment résoudre ce problème dans le contexte de l'utilisation de WP Cerber Security

  1. Désactivez l'affichage des erreurs dans les paramètres PHP de votre panneau de contrôle d'hébergement. Si vous n'avez pas accès aux paramètres PHP, demandez de l'aide à votre hébergeur.
  2. Désactivez l'affichage des erreurs PHP dans les paramètres de WP Cerber sur la page d'administration de Hardening.
  3. Dans les paramètres principaux de WP Cerber, définissez « Charger le moteur de sécurité » sur « Mode standard » ou « Mode avancé ».
  4. Vérifiez si la constante WP_DEBUG est définie dans le fichier wp-config.php. Commentez la ligne avec des doubles barres obliques // ou supprimez simplement la ligne entière. Voici à quoi cela devrait ressembler :
    // define( 'WP_DEBUG', true );
    // define( 'WP_DEBUG', 1 );
  5. Ajoutez les lignes suivantes au début du fichier wp-config.php :
    @ini_set( 'display_errors', 0 );
    @ini_set( 'log_errors', 1 );

WP Cerber ou WordPress peuvent-ils être la cause du problème ?

Non. Le seul code qui peut causer ce problème est soit un plugin obsolète/bogué, soit le thème actif. Comment trouver la cause première ? Vérifiez le journal des erreurs du serveur. Et débarrassez-vous des plugins obsolètes.


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.