PHP Attention: Impossible de modifier les informations d'en-tête - les en-têtes déjà envoyés


Exemple

Apparence:

Se produit lorsque votre script tente d'envoyer un en-tête HTTP au client, mais il en était déjà sorti auparavant, ce qui entraînait l'envoi d'en-têtes au client.

Causes possibles :

  1. Print, echo: La sortie des instructions print et echo mettra fin à la possibilité d'envoyer des en-têtes HTTP. Le flux d'application doit être restructuré pour éviter cela.

  2. Zones HTML brutes: Les sections HTML non analysées dans un fichier .php sont également des sorties directes. Les conditions de script qui déclenchent un appel header() doivent être notées avant tout bloc brut.

    <!DOCTYPE html>
    <?php
         // Too late for headers already.
    
  3. Whitespace avant <?php Php pour les avertissements "script.php line 1": Si l'avertissement fait référence à la sortie de la ligne 1, alors c'est avant tout l'espace, le texte ou le code HTML avant l'ouverture du <?php token.

    <?php
    # There's a SINGLE space/newline before <? - Which already seals it.
    

Référence de SO répondre par Mario