予期しない出力によりCookiesがブロック→メモ帳でした

WordPressのfunctions.phpをいじっていたら

「エラー:予期しない出力によりCookiesがブロックされました」と表示されてログインができなくなることがあります。

原因はwindows標準のメモ帳で編集して保存したことによるものでした。

wordpressエラー-min

functions.phpにショートコードの記述を入れる作業をしてました。

記述の追加後、FFFTPでアップロードしたところ、エラーメッセージが表示されてログインができなくなってしまいました。

 

Cookieの削除

Cookiesがブロックされましたと書いてあったので、とりあえずCookieを削除してみる。

改善されない。

 

作業前にバックアップをとってあったので、元のファイルをアップロードしなおしたらエラーが消えました。

記述まちがいか?

ということは、修正後のファイルに問題があるので、コードの記述が間違ってないか確認しました。

ですが、どこも間違ってないような気がします。

 

空白、改行の削除

ネットで調べてみると、余計な空白や改行があるとエラーになるらしい。

特に、最後の行の「 ?> 」の前後にスペースや改行があり、それを削除すると改善されたという事例がたくさんありました。

最後の行に改行も空白もないな。

手あたり次第、スペースや改行を削除してアップロードしても改善されません。

メモ帳が原因だった

ふと、試しに元のファイルを開いて何もせずそのまま上書き保存をしてみる。

そのままアップロードしてみると、エラーが表示されました。

ということは、コードの記述に問題があるのではなくて、保存後のファイル自体に問題があるということ。

 

サクラエディタで開いて保存。

そうするとエラーが表示されなくなり、ログインができるようになりました。

 

どうやらメモ帳で保存するとエラーになるようです。

WordPressのFunctions.phpは文字コードをUTF-8(BOMなし)で保存しなければいけないのですが、メモ帳で保存するとBOMありでしか保存できないのでエラーになるようです。

メモ帳以外のエディタ、サクラエディタや秀丸でBOMなしで保存するとうまくいきます。