Warning: Cannot modify header information – headers already sent by

新しいサイトに Feedback Formを実装して試験をしたらこのエラーに出くわした。 ググってみると結構ヒットする。 

基本的には <?php タグの前に文字列などがあるとこのエラーが出る、という話なのだが、 最初テクストパッドで見ても文字列どころかスペースもなにもない。 他の原因かと思い、推奨されていた バファリングをONにしたりなどしてみたが拉致開かず。 

ところがPSPADエディターをHexモードにして眺めてみると なぜか先頭にFFFEのバイトがくっついている。  

これは一体なんじゃい?  テクストモードだとまったくわからない。 

Watcom Cのエディターを起動し読み込んでみたら、 こちらでは 

<?php

 と出た。 PSPADでも設定を変えると表示できるような気がするが、とにかく、Watcom editor を使ってこのわけのわからんゴミを削除し、サイトにアップロードしなおしてトライしたところ解決! (さきほどNetBeansのIDEでも表示が出る事を確認) 無為に使った時間の総計約3時間

 
そこで FFFE at the beginning of Text file でググってみたら、  Wikipedia 上の Byte Order markという記述にたどりついた。NotepadなどのWindowsのエディターはデフォルトでこれがくっつくんだそうな。 説明はそちらにゆずるとして、  PHPで不具合が出ますよ、と、どんぴしゃのことがしっかり書いてある。 これで半日つぶしたぞ! 
 
PS: フラッシュを埋め込んだページのいくつかに、このが表示される理由がわからなかったのだが、 これでなんとなく察しがついた。 埋め込みに使ったテンプレートファイルを眺めてみることにしよう。
 
 
 in my case, it was the Byte order Mark that was appended to the beggining of the PHP file.  For detail discussion, see Wikipdia entry “byte order Mark”  It even talks about this particular  PHP error.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.