“Warning: Cannot modify header information – headers already sent” hiba javítása

[Ezt a cikket 3 perc elolvasni.]

Szinte naponta felmerül a kérdés, hogy mi a teendő, ha WordPress oldalunkon az alábbihoz hasonló hibaüzenet jelenik meg: “Warning: Cannot modify header information – headers already sent by (output started at …/wp-config.php:1) in /wp-admin/includes/misc.php on line 1114”. A két PHP fájl és a jelzett sorok természetesen esetenként eltérhetnek, a hibaüzenet megoldására azonban a legtöbb esetben ugyanazt a módszert kell alkalmaznunk.

Első körben érdemes megvizsgálni az “output started” után szereplő PHP fájlt és az ott jelzett sor számát (jelen esetben ez az 1). Tehát a problémát nagy valószínűséggel a “wp-config.php” fájl első sorában kell keresni. Ezt sokan nagyon rutinosan meg is teszik, azonban nem találnak ott semmi gyanúsat, így a további hibakeresés itt meg is szakad.

A gondot szinte mindig az okozza, hogy a fájl manuális szerkesztésekor bekerül az első sor legelejére az úgy nevezett BOM (byte order mark). Ez az UTF8-as kódolás egyik hozadéka, azonban a használata se nem kötelező, se nem ajánlott, WordPress esetében pedig problémákat is okozhat. Ha egy fájlt például az alap Windows-os Notepad-el (Jegyzettömb) szerkesztünk, akkor automatikusan hozzá fogja adni a BOM-ot a fájl elejére, ez pedig lehet oka a fenti hibaüzenetnek.

Ahhoz, hogy a problémát orvosolni tudjuk (és a jövőben elkerülhessük), mindenképpen ajánlott egy komolyabb szerkesztő program használata a WordPress fájljainak módosítására. Én személy szerint az ingyenes Notepad++-t ajánlom. Ez gond nélkül kezeli, mutatja és konvertálja a fájlok kódolását és a BOM-ot is, tehát töltsük le, telepítsük és nyissuk meg szerkesztésre a “wp-config.php”-t. Nézzük meg a fájl legelejét, egész pontosan azt, hogy szerepel-e akár csak egy szóköz vagy bármi más karakter a nyitó “<?php” tag előtt. Ha igen, akkor ezt töröljük, mentsünk, majd töltsük fel újra a fájlt és teszteljünk. Ha a hiba továbbra is fenn áll, akkor próbáljuk meg átkonvertálni UTF-8 BOM nélküli módra a Notepad++ segítségével.

Ehhez navigáljunk a “Kódolás” menüpontra és válasszuk az “Átalakítás UTF-8 kódolásra BOM nélkül” gombot.

Ezután természetesen ismételt mentés és feltöltés szükségeltetik, a hiba pedig nagy valószínűséggel meg is fog szűnni.

Sokszor azonban nem is a BOM a felelős, hanem saját magunk, amikor véletlenül egy ártatlan szóközt vagy extra karaktert ütünk valamelyik fájl elejére vagy éppen végére a szerkesztés során. Mindig legyünk körültekintőek, ha pedig a fenti hibaüzenettel találkozunk, akkor minden esetben ellenőrizzük, hogy nem mi okoztuk-e a gondot.

Ha tetszik, mutasd meg másoknak is: