Rumah > Soal Jawab > teks badan
P粉6548949522023-08-22 13:13:35
Apabila skrip anda cuba menghantar pengepala HTTP kepada klien, tetapi sudah ada output sebelum ini, menyebabkan pengepala telah pun dihantar kepada klien.
Ini adalah E_WARNING
, ia tidak menghalang pelaksanaan skrip.
Contoh biasa ialah fail templat seperti ini:
<html> <?php session_start(); ?> <head><title>My Page</title> </html> ...
session_start()
函数将尝试向客户端发送带有会话cookie的头部。但是当PHP将<html>
元素写入输出流时,已经发送了头部。您需要将session_start()
Bergerak ke atas.
Anda boleh menyelesaikan masalah ini dengan menyemak baris kod sebelum kod yang mencetuskan amaran, dan melihat di mana outputnya. Alihkan mana-mana kod yang menghantar pengepala sebelum kod ini.
Sekeping output yang sering diabaikan ialah teg akhir PHP ?>
后的换行符。一般认为,当它是文件中的最后一个内容时,省略?>
是一种标准做法。同样,此警告的另一个常见原因是在开头的<?php
didahului dengan ruang, baris baharu atau aksara tidak kelihatan, menyebabkan pelayan web menghantar pengepala dan aksara ruang putih/baris baharu supaya tiada pengepala boleh diserahkan apabila PHP mula menghuraikan.
Jika anda mempunyai berbilang blok <?php ... ?>
kod dalam fail anda, pastikan tiada sebarang ruang di antaranya. (Nota: Jika anda mempunyai kod yang dijana secara automatik, mungkin terdapat beberapa blok kod)
Juga pastikan anda tidak mempunyai sebarang Tanda Pesanan Byte dalam kod anda, cth. skrip dikodkan sebagai UTF-8 dengan BOM.
Soalan berkaitan: