Warning: Cannot modify header information – headers already sent

Si vous avez rencontré l’erreur PHP « Cannot modify header information – headers already sent », cela signifie qu’il y a un problème avec le code d’en-tête de la page de votre site Web. Ne vous inquiétez pas, nous sommes là pour vous aider! Dans cet article, nous allons voir d’où vient l’erreur et la solution correspondant.
 

Cas 1 : Utilisation de « echo » avant l’en-tête
<?php
	echo "Welcome to WayToLearnX";
	...
	header('Location: https://waytolearnx.com/');
?>

 
Solution:
Supprimer « echo » avant l’en-tête
Utilisez ob_start(); et ob_end_flush();.
 
Exemple:

<?php
  ob_start();

  // code PHP

 ob_end_flush();
?>

 
 

Cas 2 : Saut de ligne ou espaces avant <?php

Les sauts de ligne et les espaces seuls peuvent être un problème. Mais il y a aussi des séquences de caractères « invisibles » qui peuvent provoquer cela.

       <?php
...   
header('Location: https://waytolearnx.com/');
?>

 
Solution:
Supprimer toute chose avant <?php
 

Cas 3 : BOM(Byte-Order-Mark) dans les fichiers PHP encodés en utf-8

Si vous avez édité le fichier PHP avec un éditeur de texte comme notepad et que vous l’avez enregistré, vous pouvez obtenir le message d’erreur ci-dessus. La raison est que utf-8 BOM (Byte-Order-Mark) ajoutée par certains éditeurs de texte, comme par exemple notepad. Le script PHP ne doit pas avoir le « BOM », car le « BOM » contient des caractères, qui sont envoyés avant la fonction d’en-tête.

<?php
...
header('Location: https://waytolearnx.com/');
?>

 
Solution:
Changez l’encodage du fichier en « sans BOM » (par exemple en utilisant notepad++).
 

 
Ou supprimez le à l’aide d’un éditeur HEX.
 
 

Cas 4 : Header Location se trouve dans un fichier mixte PHP/HTML
<html>
	...
	<body>
		...
		<?php header('Location: https://waytolearnx.com/'); >
		...
	</body>
</html>

Dans ce cas, vous ne pouvez pas utiliser Header Location ici, car l’en-tête et le code HTML ont déjà été envoyés!
 

Cas 5 : Lignes, caractères ou espaces vides après ?> Lors de l’utilisation du « include »
<?php
	echo "Welcome to WayToLearnX";
?>


...

 
Solution:
Supprimer toute chose après ?> Dans le fichier php inclus.
 
 

2 réflexions sur “Warning: Cannot modify header information – headers already sent

  • novembre 16, 2020 à 1:58
    Permalien

    bonjour
    pour ceux cas la

    Cas 4 : Header Location se trouve dans un fichier mixte PHP/HTML

    Dans ce cas, vous ne pouvez pas utiliser Header Location ici, car l’en-tête et le code HTML ont déjà été envoyés!

    On peut utiliser quel solution
    merci

    Répondre
    • novembre 17, 2020 à 7:40
      Permalien

      Essayez de séparer le Header et importer le via « include » ou « require ».

      Répondre

Laisser un commentaire

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