La solution ne peut pas ajouter des informations d'en-tête - headers already sent
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
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
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.