La solution ne peut pas ajouter des informations d'en-tête - headers already sent

Bug fix est simple.
Souvent, le même message apparaît au début des sessions dans une formulation légèrement différente:
Warning: Cannot send session cookie - headers already sent en- Warning: Cannot send session cookie - headers already sent Warning: Cannot send session cache limiter - headers already sent en- Warning: Cannot send session cache limiter - headers already sent
Pour commencer à apprendre comment faire le navigateur communique avec le serveur. Il y a un protocole spécial l' en- tête (), setcookie , session_start() , envoyer des en- têtes HTTP.

Nous considérons maintenant cet avertissement.
Warning: Cannot add header information - headers already sent by (output started at /www/script.php:5) on line 20
Cannot add header information - headers already sent en- Cannot add header information - headers already sent en- Cannot add header information - headers already sent . Tout est clairement écrit. "Vous ne pouvez pas envoyer l'en-tête, le train a déjà quitté," - écrit à nous PHP. rapports PHP Suivant dans lequel le script et ce que sa ligne ( output started at /www/script.php:5 ) ont conclu qu'il y avait des informations qui a causé les en- têtes d' envoi automatique. Très facile à trouver et à corriger. Peut-être at - il des balises HTML peuvent être l'écho, ou peuvent tout simplement pas remarqué la chaîne vide ou un espace avant la première balise <? .
Très souvent, cette erreur provoque le fichier connecté via include , où soit il y a une conclusion, ou une ligne vide après la balise de fermeture PHP - il est très difficile à détecter.

Pour résoudre ce problème , vous devez fonctionner header en- session_start setcookie header () (ou session_start (), setcookie ) et toute la logique que ce soit, de mettre avant toute sortie vers le navigateur. Il suffit de déplacer plus élevé dans le script.
Après tout, vous aurez toujours rediriger le navigateur. C'est, aucun texte ne sera toujours pas affiché! Par conséquent, la sortie est quelque chose en même temps que l'en-tête de localisation n'a pas de sens. Bien planifier la structure de votre script: un bloc qui gère le POST, rien ne devrait pas sortie vers le navigateur.

Parfois, vous avez tout vérifié - il n'y a rien nulle part. Changer l'éditeur. Regardez votre fichier dans un autre programme. Par exemple, le Bloc-notes de Windows en utilisant le codage ajouté à la partie supérieure de votre fichier Byte de caractère spécial Order Mark, de quelque façon que Unicode sans mettre que vous sachiez. Ouvrez le script dans un autre éditeur et de supprimer les caractères étrangers. Et passer à un autre éditeur Bloc-notes.

De nombreuses questions sur le forum me font faire un point important ici:
Cette erreur ne semble pas de ce que vous avez dans le script, "ce qui est écrit ci-dessus." Et que PHP prend quelque chose dans le navigateur. Cela ne signifie pas nécessairement le code. Cela peut être un message d'erreur. Il peut être blanc ou tag html. Oui. Pour les plus talentueux: il est sur tous les symboles envoyés au navigateur, pas seulement ceux que le navigateur affiche un utilisateur inexpérimenté. Dans les pages HTML ont le code source. Et il est le résultat du script PHP, pas la belle bukovki avec kartinochku comme penser un très grand nombre de personnes.

par phpfaq.ru