Rumah > Soal Jawab > teks badan
P粉4974634732023-08-21 11:59:37
Apabila skrip anda cuba menghantar pengepala HTTP kepada klien, tetapi sudah ada output sebelum ini, ini menyebabkan pengepala telah pun dihantar kepada klien.
Ini adalah E_WARNING
, ia tidak menghalang pelaksanaan skrip.
Contoh biasa ialah fail templat seperti yang ditunjukkan di bawah:
<html> <?php session_start(); ?> <head><title>我的页面</title> </html> ...
session_start()
函数将尝试向客户端发送带有会话cookie的头信息。但是当PHP将<html>
元素写入输出流时,已经发送了头信息。您需要将session_start()
Bergerak ke hadapan.
Anda boleh menyelesaikan masalah ini dengan melihat baris sebelum kod yang mencetuskan amaran, dan semak di mana outputnya. Alihkan mana-mana kod yang menghantar maklumat pengepala sebelum kod ini.
Satu bahagian output yang sering diabaikan ialah ruang, baris baharu atau watak halimunan sebelum teg penutup PHP ?>
之后的换行符。通常的做法是在文件的最后一行省略?>
。同样,引起此警告的另一个常见原因是在开头的<?php
, menyebabkan pelayan web menghantar pengepala bersama ruang putih/baris baharu, dan oleh itu tidak dapat menyerahkan sebarang pengepala apabila PHP bermula menghurai.
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 bait dalam kod anda, cth. skrip dikodkan sebagai UTF-8 dengan BOM.
Soalan berkaitan: