Maison > Questions et réponses > le corps du texte
P粉5433443812023-08-28 14:09:21
Cela se produit lorsque votre script essaie d'envoyer des en-têtes HTTP au client mais qu'il y a déjà eu une sortie auparavant, ce qui fait que les en-têtes ont déjà été envoyés au client.
C'est un E_WARNING
et cela n'arrête pas le script.
Un exemple typique est un fichier modèle comme celui-ci :
<html> <?php session_start(); ?> <head><title>My Page</title> </html> ...
session_start()
函数将尝试将带有会话 cookie 的标头发送到客户端。但是 PHP 在将 元素写入输出流时已经发送了标头。您必须将
session_start()
Déplacer vers le haut.
Vous pouvez résoudre ce problème en examinant la ligne précédant le code qui déclenche l'avertissement et en vérifiant où il est affiché. Déplacez tout en-tête envoyant le code avant ce code.
Une sortie souvent négligée est la fin PHP ?>
之后的新行。当 ?>
是文件中的最后一个内容时,省略它被认为是一种标准做法。同样,此警告的另一个常见原因是当开头的 lorsqu'elle est précédée d'espaces, de lignes ou de caractères invisibles, ce qui oblige le serveur Web à envoyer des en-têtes et des espaces/nouvelles lignes, donc lorsque PHP commence l'analyse, il ne pourra soumettre aucun en-tête.
Si vous avez plusieurs blocs de code dans votre fichier, il ne devrait y avoir aucun espace entre eux. (Remarque : si vous avez du code construit automatiquement, vous pouvez avoir plusieurs blocs)
Assurez-vous également que votre code ne contient aucune marque d'ordre d'octet, par exemple lorsque le script est codé en UTF-8 avec une nomenclature.
Questions connexes :