BOM karakter – “Headers already sent by” hiba megoldása

PHP fájlok szerkesztése után előfordulhat, hogy bizonyos szerkesztő programok (pl. a Windows-os Notepad) ún. “BOM” (Byte Order Mark) karaktert helyeznek el a PHP fájl elejére, emiatt az oldal helytelenül vagy egyáltalán nem működik.

Mi az a BOM karakter?

Korábban a PHP fájlok elején az UTF-8-as kódolást jelezte a BOM karakter (UTF-8 jelzés). Minden PHP fájl alapértelmezésben a “<?php” kóddal kezdődik, ez elé kerül be a BOM karakter, ha olyan programot használunk a szerkesztéshez, amelynél a BOM karakter elhelyezése van beállítva. A BOM karaktersorozat a legtöbb szerkesztő programban nem látható, mint pl. a cpanel fájlkezelőjében, vagy az ismert FTP programokban.

Jó tudni!

Amennyiben egyszer csak nem látható az oldalad (üres oldal töltődik be), és nem te változtattál rajta, gyanakodni kell weboldal feltörésre. Ez esetben futass vírusellenőrzést a tárhelyeden (cPanel->Speciális->Víruskereső), illetve ellenőrizd a fájlok módosítási dátumát is!

Milyen hibát okoz a BOM karakter?

WordPress esetén jellemzően teljesen üres oldalt tud eredményezni. Tipikus esetek: admin oldalon a jelszó beírása után üres oldal. Eleve a főoldalon üres lap. Ha a WordPress debug mode be van kapcsolva, a hibaüzenet megjelenhet az oldalon “Headers already sent by”. Ha nem írja ki a hibaüzenetet az oldal, akkor kapcsold be a PHP error logot, a következő módon:

Az oldalad könyvtárjában hozz létre egy .user.ini fájlt. Ezt a cpanel fájlkezelőjével könnyen el tudod végezni.

Ezután szerkeszd a fájlt (cpanel fájlkezelőben jobb gomb->Edit), majd add hozzá a következő sort:

Ments rá, majd töltsd újra az oldalt, ahol a problémát tapasztaltad. Ezután az oldalad könytárjában létrejön egy error_log nevű fájl.

Amennyiben itt a “Cannot modify header information – headers already sent by” vagy ehhez hasonló a hibaüzenet, akkor biztosan a BOM karakter a hibás. a PHP error_log leírja, hogy a kimenet hol kezdődik, így könnyen megtalálható az a fájl, ahol a PHP értelmező először elakadt “output started at” hibajelzéssel.

Nyisd meg a hibaüzenetben található fájlt pl. a cpanel fájlkezelőjének editorával. Itt nem fogod látni a BOM karaktert, de törölni fogod tudni:

vidd a kurzort a <?PHP elé

majd nyomd meg a backspace-t, ezzel törlöd a fájl elején lévő láthatatlan karaktert, majd mentsd el a fájlt.

Frissítsd az oldalt, hogy betöltődik-e. Ha nem, akkor ellenőrizd a hibanaplót, vagy PHP error_logot, hogy hol van még ilyen.

Hozzászólás küldése

Ez a weboldal az Akismet szolgáltatását használja a spam kiszűrésére. Tudjunk meg többet arról, hogyan dolgozzák fel a hozzászólásunk adatait..