PHP ファイルを変更した場合:
ログインまたはログアウトができない。
ページの上部に空白行が表示される。
その他の異常な状況。
おそらくエディタの問題です。
このプログラムは UTF-8 エンコーディングを使用します。ほぼすべてのテキスト編集ソフトウェアは、UTF-8 でエンコードされたファイルを表示および編集できるようになりました。しかし、残念ながら、それらの多くはパフォーマンスが良くありません。
Windows に付属のメモ帳などのソフトウェアは、UTF-8 でエンコードされたファイルを保存するときに、ファイルの先頭に 3 つの非表示文字 (0xEF 0xBB 0xBF、または BOM) を挿入します。これは、メモ帳などの編集者がファイルが UTF-8 でエンコードされているかどうかを識別できるようにするために使用される隠し文字の文字列です。通常のファイルの場合は問題ありません。しかし、PHP の場合、BOM が問題になります。
PHP は BOM を無視しないため、これらのファイルの読み取り、組み込み、または参照の際、BOM はファイルの先頭テキストの一部として使用されます。組み込み言語の特性上、この文字列が直接実行(表示)されます。その結果、ページの上部パディングを 0 に設定しても、HTML の先頭にこれらの 3 文字があるため、Web ページ全体をブラウザの上部近くに配置することはできません。
最大の問題はこれではありません。 COOKIE 送信メカニズムの制限により、ファイルの先頭に BOM がすでに存在するファイルでは、COOKIE を送信できません (COOKIE が送信される前に PHP がファイル ヘッダーを送信しているため)。関数が無効です。 COOKIE および SESSION に依存する関数はすべて無効です。
したがって、テキストファイルを編集または変更する場合は、必ずBOMがランダムに追加されないエディタを使用してください。 Linux 上のエディタではこの問題は発生しません。 WINDOWSではメモ帳などのエディタは使用しないでください。推奨されるエディタは次のとおりです:
Editplus バージョン 2.12 以降;
UltraEdit (「BOM の追加」の関連オプションをキャンセルする必要があります);
Dreamweaver (「BOM の追加」の関連オプションをキャンセルする必要があります); 。
BOMが追加されたファイルについて、キャンセルしたい場合は、上記のエディタを使用して一度保存できます。 (Editplus は最初に gb として保存し、次に UTF-8 として保存する必要があります)