Maison > Questions et réponses > le corps du texte
P粉6548949522023-08-22 13:13:35
Lorsque votre script essaie d'envoyer des en-têtes HTTP au client, mais qu'il y a déjà une sortie auparavant, les en-têtes ont déjà été envoyés au client.
C'est un E_WARNING
, cela n'arrête pas l'exécution du 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将<html>
元素写入输出流时,已经发送了头部。您需要将session_start()
Déplacer vers le haut.
Vous pouvez résoudre ce problème en vérifiant la ligne de code avant le code qui a déclenché l'avertissement et en voyant où se trouve la sortie. Déplacez tout code qui envoie des en-têtes avant ce code.
Un élément de sortie souvent négligé est une balise de fermeture PHP ?>
后的换行符。一般认为,当它是文件中的最后一个内容时,省略?>
是一种标准做法。同样,此警告的另一个常见原因是在开头的<?php
précédée d'un espace, d'une nouvelle ligne ou d'un caractère invisible, ce qui oblige le serveur Web à envoyer des en-têtes et des espaces/nouvelles lignes afin qu'aucun en-tête ne puisse être soumis lorsque PHP commence l'analyse.
Si vous avez plusieurs blocs de code <?php ... ?>
dans votre fichier, assurez-vous qu'il n'y a pas d'espace entre eux. (Remarque : si vous disposez d'un code généré automatiquement, il peut y avoir plusieurs blocs de code)
Assurez-vous également que vous n'avez aucune marque d'ordre d'octet dans votre code, par exemple, le script est codé en UTF-8 avec BOM.
Questions connexes :