Maison > Questions et réponses > le corps du texte
P粉4974634732023-08-21 11:59:37
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 indiqué ci-dessous :
<html> <?php session_start(); ?> <head><title>我的页面</title> </html> ...
session_start()
函数将尝试向客户端发送带有会话cookie的头信息。但是当PHP将<html>
元素写入输出流时,已经发送了头信息。您需要将session_start()
Déplacez-vous vers l'avant.
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ù se trouve la sortie. Déplacez tout code qui envoie des informations d’en-tête avant ce code.
Un élément de sortie souvent négligé est un espace, une nouvelle ligne ou un caractère invisible avant la balise de fermeture de PHP ?>
之后的换行符。通常的做法是在文件的最后一行省略?>
。同样,引起此警告的另一个常见原因是在开头的<?php
, ce qui oblige le serveur Web à envoyer des en-têtes avec l'espace/la nouvelle ligne, et ne peut donc pas soumettre d'en-têtes au démarrage de PHP. 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 votre code ne contient aucune marque d'ordre d'octet, par exemple, le script est codé en UTF-8 avec BOM.
Questions connexes :