ブログBlog
思わぬ罠?
投稿日:2015年02月04日
布内です。
phpファイルを数行書き換えただけなのに、エラーメッセージが表示されました。
Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at ファイル名) in ファイル名
調べてみると、既にHTTPヘッダー情報が送られていてsession_start関数でCookieを作成するためのHTTPヘッダーを作成できないという意味です。
より前に改行が入ってる等で発生することが多いです。
ですが今回はこんな所は一切触っておらず、影響を与えるはずも無い部分の編集。
では、その原因は何なのか?
調べて得た答えはメモ帳でした。
windowsのメモ帳でUTF-8で保存すると、ソースの最初にBOMが挿入されてしまい、PHPから既にデータが出力されている状態になってしまうようです。
UTF-8Nで保存するとBOMが挿入されないようですが、メモ帳では選択できませんのでご注意を。