Siedząc na kilku forach dotyczących WordPressa, bardzo często spotykam się z błędem Cannot modify header information - headers already sent by
, niestety ale mało kto szuka rozwiązania w google czy używając wyszukiwarek na forach, tylko zakładają nowe tematy, tych tematów jest na tyle dużo, że bardzo często odpowiedzią jaką użytkownik otrzymuje, jest zachęta do szukania wraz z zamknięciem tematu. Dzisiaj przeszukałem google pod względem tego błędu, i faktycznie w sporej ilości wyników wyszukiwania nie ma odpowiedzi, tylko jest nagonka na lenistwo użytkowników – w związku z tym postanowiłem dodać wpis w którym od początku do końca opiszę sposób na poradzenie sobie z 90% problemów z tym błędem.
Co oznacza ten błąd
Błąd ten występuje najczęściej w dwóch przypadkach. Pierwszy, i podstawowy, jest spowodowany błędem programisty, kiedy po wysłaniu jakichkolwiek danych do przeglądarki, próbuje wysłać jeszcze dodatkowe nagłówki ( np. przy pomocy funkcji header()
), bywa też że poprzez bałagan w kodzie, próbuje się przy jednym wywołaniu skryptu wysłać dwa nagłówki – co także nie przejdzie.
Drugim przypadkiem, tym który jest najbardziej popularny dla użytkowników WordPressa, jest problem z edytowaniem pliku wp-config.php
, lub czasami także innych plików, sporo osób stosuje do tego zadania zwykły notatnik, który jest źródłem i przyczyną problemu.
W tym wpisie opiszę drugi przypadek, gdyż jeżeli ktoś bawi się w programowanie i kombinuje z przesyłaniem nagłówków, to na pewno sam też sobie poradzi albo znajdzie rozwiązanie swojego problemu.
Komunikat błędu
Najczęściej błąd przybiera taką postać:
Warning: Cannot modify header information – headers already sent by (output started at /wordpress/web/wp-config.php:1) in /wordpress/web/wp-admin/install.php on line 36
Po treści błędu, mamy nawias, w którym znajduje się ścieżka do pliku z którym jest problem, jeżeli znajdziemy tam wpisany wp-config.php
, oznaczać to będzie że popełniliśmy błąd przy jego edycji. W dalszej części komunikatu błędu znajdziemy ścieżkę do pliku, oraz linijkę tego pliku, w której jakiś kod się wysypał – ale to nas już nie interesuje, trzeba naprawić źródło błędu.
Oczywiście ścieżka do plików, lub numer linii kodu, mogą się różnić w zależności od serwera, nazwy konta albo nawet domeny, więc nie sugerujcie się inną ścieżką, tylko nazwami plików które są na samym końcu.
Rozwiązanie problemu
Pierwszą i podstawową rzeczą, jest wyposażenie się w edytor, który obsługuje kodowanie UTF-8 bez BOM
, jest tego sporo w internecie, ja osobiście korzystam z Notepad++, ten edytor polecam, i także w oparciu o niego będę opisywał rozwiązanie. Jeżeli Wy także chcecie z niego skorzystać, to z tej strony, pobieramy wersję Installer ( tą która jest na samej górze ). Po ściągnięciu programu, instalujemy go i uruchamiamy.
Edycja pliku wp-config.php
Teraz musimy naprawić plik wp-config.php
, możemy go edytować bezpośrednio na serwerze, lub możemy go ściągnąć na dysk, edytować, i wtedy wysłać już poprawiony na serwer – wybór należy do Was, jak komu wygodniej. Ważne jest aby edytować go odpowiednim programem, tutaj opisuję Notepad++.
Jeżeli już mamy otwarty plik wp-config.php
w edytorze Notepad++, robimy po kolei:
- sprawdzamy czy na początku pliku, przed tagiem
?php
, nie ma czasem niepotrzebnych spacji czy enterów – jak są to je usuwamy - sprawdzamy czy na końcu pliku także nie ma niepotrzebnych spacji lub enterów, i także je usuwamy
- zaznaczamy cały kod, u góry w menu
Edycja
>Zaznacz wszystko
, lub po prostuctrl + a
- kopiujemy cały kod, u góry
Edycja
>Kopiuj
lubctrl + c
- zmieniamy kodowanie na poprawne, u góry
Formatuj
>UTF-8 (bez BOM)
- ponownie zaznaczamy cały kod
Edycja
>Zaznacz wszystko
, lubctrl + a
- wklejamy wcześniej skopiowany kod
Edycja
>Wklej
lubctrl + v
Po czym zapisujemy plik, i jeżeli edycji nie wykonywaliśmy bezpośrednio na serwerze, to go teraz tam wysyłamy i nadpisujemy już istniejący plik wp-config.php
.
Podsumowanie
W powyższy sposób możemy edytować nie tylko plik wp-config.php
, ale także np. pliki szablonu czy pliki z tłumaczeniami – to może nam pomóc na problem z występowaniem krzaków na stronie zamiast polskich znaków. Natomiast manewr z kopiowaniem całego kodu, i potem go wklejaniem, ma na celu uniknięcie zamiany źle zakodowanych polskich znaków, w krzaki, bez tego, musieli byśmy przeglądać cały kod pliku, i wszystkie dziwne znaki, poprawiać na poprawne polskie odpowiedniki.
16 lipca 2011 19:33
Dzięki wielkie tego właśnie szukałem. Tak jak napisałeś, trzeba było zamiast zwykłego notatnika ściągnąć sobie notepad++ i zapisać z tym kodowaniem utf8 bez bom i już wszystko działa ok :)
18 lipca 2011 18:47
Super, działa! Świetny poradnik (: Pozdrawiam
22 lipca 2011 22:05
Super poradnik.
Główny problem polegał u mnie na edycji wp-config.php w notatniku. Naturalnie, wszystko już działa ;-)
18 sierpnia 2011 15:41
Dzięki, pomogło! Zapamiętam na przyszłość z notatnikiem :)
7 września 2011 10:25
Wielkie dzięki! U mnie ten błąd pojawił się po edycji pliku wp-config.php w notatniku. Całe szczęście, że znalazłem tu rozwiązanie problemu, bo mało brakowało, a porządnie bym namieszał i „rozwalił” duży serwis.
Dzięki raz jeszcze :)
9 września 2011 05:51
Dzięki. Prosto i na temat. Pozdrawiam
16 września 2011 10:12
dzięki. Trafione w punkt!
8 października 2011 21:05
Dzięki wielkie, po dłuższej chwili googlowania trafiłem tutaj – problem wyeliminowany z moment, z notatnikiem nauczka na przyszłość. :-)
3 listopada 2011 21:51
Brawo i dzięki! Bardzo przydatny i rzeczowy tekst. Z pewnością pomoże wielu osobom w rozwiązaniu problemu i zainspiruje do używania lepszych narzędzi niż notatnik. Oby więcej takich postów…
14 listopada 2011 16:27
Dzięki. Kilka dni szukałem rozwiązania i dopiero to pomogło.
5 grudnia 2011 16:55
Dzięki. Bardzo się przydało. Jesteś mistrzem.
2 stycznia 2012 10:26
Dziękuje bardzo, problem był bardzo uciążliwy, zastosowałem inne rozwiązania które pomogły częściowo, ale dopiero ten poradnik usunął problem całkowicie.
4 lutego 2012 02:26
Cześć
Ja mam chyba odrobinkę inny problem, a wiedzy praktycznie żadnej – dopiero zaczynam.
Zainstalowałam WordPressa, ale problem pojawia się z tego co widzę w pliku pluggable.php – wyświetla mi się taki komunikat:
Cannot modify header information - headers already sent by (output started at /home/mplmi122/public_html/zarabianie-dla-kazdego.pl/wp-config.php:1) in /home/mplmi122/public_html/zarabianie-dla-kazdego.pl/wp-includes/pluggable.php on line 934
Posprawdzałam czy nie ma tam jakichś spacji, enterów itd. ale boję się tam cokolwiek ruszać, bo nie wiem co. Czy mógłbyś mi pomóc?
Z góry dziękuję. Pozdrawiam
4 lutego 2012 02:48
Liczy się odwołanie do pierwszego pliku, czyli do wp-config.php, gdyż to tam jest problem, na który natrafia coś co jest zakodowane w pliku pluggable.php
Więc cały czas uważam że problem jest ten sam, czyli trzeba ściągnąć Notepad++, zmienić kodowanie, i jak nie pomoże to dodatkowo wywalić spacje, entery … mam 100% pewności że stosując się do tego poradnika, rozwiążesz swój problem.
3 kwietnia 2012 18:29
Wielkie dzięki po zmianie na notepad++ i wykonaniu instrukcji z poradnika wszystko działa i problem zniknął ;)
11 czerwca 2012 15:04
Dzięki wielkie! Tego szukałam : D Jeden ważny drobiazg i problem z głowy.
7 lipca 2012 01:28
Istotnie należy pamiętać o tym żeby kodowanie było UTF-8 (bez BOM). Tyczy się nie tylko wordpressa ale każdego kawałka kodu. Inaczej header nie zadziała. Te nasze polskie znaki wprowadzają tyle zamieszania…
20 lipca 2012 08:11
Godzinę siedziałem i głowiłem się gdzie jest błąd, przerabiałem kod, przepisywałem. Aż w końcu udało mi się wygooglać ten artykuł ;-) Wprawdzie problem nie był związany z WordPressem, ale serdecznie dziękuję za jego rozwiązanie :-) Notepad++ zastąpić teraz będzie musiał windowsowy Notatnik.
Pozdrawiam
29 sierpnia 2012 11:53
Doskonały wpis! Już po przeczytaniu trzech akapitów wiedziałem, co zrobić. W moim przypadku problem pojawił się, ponieważ edytowałem jeden z plików php pewnego pluginu za pomocą edytora tekstu Notepad++. Po zapisaniu pliku zwykłą opcją „Zapisz” zostały do niego dodane pewne nagłówki, czego nie byłem świadomy. Wystarczyło wybrać opcję „Konwertuj do UTF bez BOM”, zapisać i jeszcze raz wysłać na serwer. Kluczowy jest nie tyle format UTF co właśnie brak BOM.
13 września 2012 20:36
Super!!! Wielkie dzięki za ten wpis. Szukałem rozwiązania przez pół dnia po google, a tutaj szybko i bezboleśnie.
Zastanawia mnie tylko skąd wziął się ten błąd ponieważ ja nie edytowałem wcześniej tego pliku, normalnie dodawałem zdjęcia na stronę i trochę zmieniałem i nagle mi to wywaliło.
14 września 2012 06:02
W takim wypadku proponował bym się zainteresować kto jeszcze ma dostęp do FTP :)
1 października 2012 18:06
Serdecznie dziękuję za poradę!
10 października 2012 10:21
Ja nie miałem kodowania UTF-8 bez BOM w functions.php
Po zmianie pomogło, super dzięki :)
4 listopada 2012 22:26
Mój problem dotyczył krzaków, które pojawiły się w nagłówkach. Rzeczywiście to też pomogło w moim temacie. Dzięki za pomoc! Jesteś wielki!
16 listopada 2012 21:25
Bardzo mi pomógł ten wpis. Miałem problem z samodzielną instalacją WP na 1and1.pl, a jak się użyje ich automatu, to jest jakiś problem z javascriptem. Próbowałem zmieniać stronę kodowania na utf w notatniku, ale to nie wystarczało. Ta instrukcja załatwiła sprawę.
27 listopada 2012 18:29
Działa! Wielkie dzięki za pomoc i poradnik. Okazało się, że robiłam podstawowy błąd – wybrałam kodowanie UTF-8, a nie UTF-8 (bez BOM),
28 stycznia 2013 16:25
Nie mogę wyeliminować moje błędu metodą tutaj pokazaną czyli zmiana kodowania na UTF-8 bez BOM. Kod błędu:
Cannot modify header information – headers already sent by (output started at /homepages/11/d451701501/htdocs/wp-content/themes/osp/functions.php:1) in /homepages/11/d451701501/htdocs/wp-includes/pluggable.php on line 881
Ktoś może pomoże?
5 maja 2013 23:46
Na pewno edytujesz dobry plik? W Twoim wypadku problem nie leży po stronie wp-config.php, lecz /wp-content/themes/osp/functions.php
3 kwietnia 2013 17:52
Dzięki!
28 kwietnia 2013 09:50
U mnie to niestety nie pomogło ;/
28 kwietnia 2013 21:11
Mógł byś podać komunikat błędu, i jakieś informacje co dokładnie zrobiłeś aby go naprawić?
1 maja 2013 20:04
u mnie tez nie pomogło
moj kod błedu;
Warning: Cannot modify header information – headers already sent by (output started at /home/jmd/domains/gewo.pl/public_html/blog/wp-includes/general-template.php:2099) in /home/jmd/domains/gewo.pl/public_html/blog/wp-includes/pluggable.php on line 881
5 maja 2013 23:48
Jaka wersja WordPressa? Spróbuj zaktualizować do najnowszej. Jeśli najnowsza, to ściągnij pliki ponownie, i katalog wp-includes wyślij na serwer ponownie, nadpisując wszystkie pliki.
5 maja 2013 23:51
u mnie był konflikt jednej z wtyczek
jak ja skasowałem jest ok
11 sierpnia 2013 16:11
OMG, dzięki! Zadziałało :)
13 września 2013 20:14
Ogromne dzieki dobry czlowieku ! Jest wielki !
17 września 2013 22:42
Dziękuję, 100% skuteczne.
Ale jestem z siebie dumny, że nie założyłem nowego tematu na forum :)
28 września 2013 17:25
Cześć.
Początkowo miałem błąd:
Warning: Cannot… …/wp-config.php:1)… , zastosowałem się do rozwiązania podanego powyżej i zmiana jaka zaistniała w błędzie to zmiana pliku z wp-config.php na …/lib_aux.php:12)…
Wykonałem tę samą czynność i dla tego pliku, niestety w tym przypadku nic to nie zmieniło. Jest na to jakieś rozwiązanie?
30 września 2013 16:41
Jak możesz to pokaż cały komunikat błędu.
30 września 2013 22:15
Błędy które się obecnie pojawiają.
Warning: Cannot modify header information – headers already sent by (output started at /nazwa_domeny/wp-content/plugins/cforms/lib_aux.php:12) in /nazwa_domeny/wp-login.php on line 368
Warning: Cannot modify header information – headers already sent by (output started at /nazwa_domeny/wp-content/plugins/cforms/lib_aux.php:12) in /nazwa_domeny/wp-includes/pluggable.php on line 680
30 września 2013 22:49
Spróbuj wyłączyć wtyczkę cForms, jeśli to pomoże, wtedy usuń ją, pobierz i wgraj od nowa.
4 października 2013 22:15
– wyłączyłem wtyczkę, następnie zalogowałem się do panelu administracyjnego i ją usunąłem.
– pobranie nowej z strony http://www.deliciousdays.com/cforms-plugin/ ; rozpakowanie i umieszczenie w katalogu wp-content/plugins
– po włączeniu wtyczki komunikaty :
Notice: Undefined index: cforms_showdashboard in /nazwa_domeny/wp-content/plugins/cforms/cforms.php on line 1677
Notice: Undefined index: update in /nazwa_domeny/wp-content/plugins/cforms/cforms.php(48) : runtime-created function on line 1
– wyłączenie i usunięcie wtyczki , wykonanie aktualizacji wordpress
– ponowne dodanie i włączenie wtyczki, komunikaty bez zmian
– po wylogowaniu i próbie ponownego logowania komunikaty:
Warning: Cannot modify header information – headers already sent by (output started at /nazwa_domeny/wp-content/plugins/cforms/lib_aux.php:12) in /nazwa_domeny/wp-login.php on line 396
Warning: Cannot modify header information – headers already sent by (output started at /nazwa_domeny/wp-content/plugins/cforms/lib_aux.php:12) in /nazwa_domeny/wp-includes/pluggable.php on line 695
5 października 2013 18:41
W takim wypadku proponuję się skontaktować z autorem wtyczki.
20 października 2013 20:10
Witam,
Mam podobny problem i do tej pory używałem konwertera w Notepadd++ z ANSI na UTF’a.
W tym momencie jeśli prze-konwertuje plik na UTF’a bez DOM nie dostaję komendy o błędzie, ale nie mam polskich znaków w czcionkach (używam Oswolda). Jeśli zmienię na UTF’a otrzymuję komunikat o błędzie jednak czcionki mają polskie znaki.
Ktoś spotkał się z takim problemem? Będę wdzięczny za pomoc.
29 października 2013 02:24
Możesz pokazać linka do strony w której występuje problem z polskimi znakami dla UTF-8 bez BOM? Tak naprawdę w kodowaniu między tym, a zwykłym UTF-8 nie ma żadnej różnicy, dlatego tym bardziej dziwi mnie Twój problem.
Czy przed zmianą kodowania, na pewno skopiowałeś kod do schowka, a po zmianie, wkleiłeś go z powrotem nadpisując nowy (z możliwymi krzakami zamiast polskich znaków)?
3 listopada 2013 13:11
wielkie dzięki pomogło
„UTF-8 (bez BOM)”
23 listopada 2013 09:42
Wielkie, wielkie dzięki! Mi ten problem pojawił się po przenosinach strony na inny hosting. Ale po zmianie kodowania wszystko elegancko chodzi.
29 grudnia 2013 00:43
Dziękuję. Wszystko działa. Błędy poznikały a ja mogłem w końcu zalogować się do kreatora. :-)
17 stycznia 2014 18:37
Dzięki za pomoc! Teraz wszystko działa jak należy! :)
18 stycznia 2014 22:48
Super artykuł!!! Bardzo przydatny w rozwiązywaniu problemów. U mnie póki co pomogło. Komunikat o błędach standardowy, ale co ciekawe – raz błąd był wyrzucany a raz wszystko działało bez żadnych zastrzeżeń. Nie wiedziałem zupełnie o co chodzi, co może być przyczyną. Jeszcze raz Wielkie Dzięki!
1 marca 2014 14:13
Dzięki!. Pomogło
14 maja 2014 11:22
KIedyś też miałem taki problem, pomogło przerzucenie się na notepad++
25 maja 2014 20:18
kozak! działa!!!
3 lipca 2014 10:25
Dzięki!!!!!!!!!!!!! Wszystko teraz działa
13 października 2014 18:41
Dzięki wielkie! wszystko śmiga :)
26 listopada 2014 11:58
Pomogło !!! :)
Przez pół dnia szukałem błędu w kodzie a wystarczyło w notepad++ zmienić encoding na UTF8 bez BOM
11 stycznia 2015 16:04
Popsułem WP-CONFIG Notatnikiem. Teraz naprawione.
Dzięki!
19 lutego 2015 11:22
Bardzo dziękuję za pomoc!
5 marca 2015 20:20
Gdybym mogła, to bym Cię ucałowała!!!!
9 maja 2015 15:25
Dziękuję! Tego mi trzeba było, wszystko działa!
17 sierpnia 2015 16:53
Dzięki uratowałeś mi życie ;) Działa super
28 sierpnia 2015 08:54
Stary, wielkie dzięki. Próbowałem konwertować Notepad2 i nic. Dopiero dzięki temu wpisowi wykryłem tą @%#^@* spacje po znaczniku zamknięcia kodu php w functions.php skórki. Jeszcze raz dzięki.
1 października 2015 17:04
Nie chce się wierzyć że na kupnych edytorach takie błędy mogą powstawać.
Dzięki
Pozdrawiam
20 lutego 2016 19:18
Dziękuje za ocalenie resztek włosów :)
2 marca 2016 12:58
Dziękuję za potrzebne informacje podane w najlepszy z możliwych sposobów.
29 czerwca 2016 08:33
Notatnik też daje radę, tylko trzeba zapisać plik z innym kodowaniem niż UTF8 (zapisz jako i odpowiedni przycisk jest na dole okienka dialogowego).
28 sierpnia 2016 10:52
Wielkie dzięki. Wcześniej użyłem „zwykłego” notatnika, pojawiła mi się też dodatkowa linijka. Poradnik nadal aktualny przy tym problemie. Dzięki
30 sierpnia 2016 12:40
Dzięki! UTF-8 bez BOM rzeczywiście rozwiązuje problem.
24 grudnia 2016 14:05
Dzięki, prościej się tego nie dało napisać :) Ciesze się że na początku poszukiwań problemu trafiłem tutaj :)
1 minut szukania rozwiązania i po problemie :)
10 stycznia 2017 20:17
pomocne, dzięki wielkie
21 marca 2017 12:40
Dziękuję! Bardzo pomocny wpis, znów wszystko działa!
30 marca 2017 22:39
Dziękuje – bardzo mi pomogłeś.
8 kwietnia 2017 20:21
Ja już robiłam cuda, i nic nie pomoga. Zmiana kodowania też nie.
17 maja 2017 20:10
W takim razie jesteś pewna że w komunikacie błędu jest wzmianka o wp-config.php? Wklej komunikat błędu z którym nie możesz sobie poradzić.
8 czerwca 2017 16:39
Dzięki za pomoc!! 3 głupie entery i tyle zamieszania ;)
14 czerwca 2017 11:48
Pomogło. hahah, dzięki :)
25 lipca 2017 09:59
Super. Miałem niepotrzebny /enter na początku pliku. Pomogło!
3 stycznia 2018 10:52
Dzięki. Pomogło !!!
23 sierpnia 2018 11:18
Bardzo pomocny artykuł :) Już mam problem z głowy
13 października 2018 20:08
Dzięki, uratowałeś mi sobotę :)
5 stycznia 2019 12:10
Szacunek!
Tego właśnie szukałem.
Błąd pojawił się u mnie po wykorzystaniu wtyczki WP Staging -> w ich instrukcji wskazywali, żeby zmodyfkować plik wpconfig.php i napisali, że może to być zwykły notatnik. Mylili się.
Notepad++ i zmiana na UTF-8 pomogła.
Dzięki za pomoc!
16 marca 2019 13:45
Dziękuję bardzo pomogło. Site is working yeah!!!!
20 października 2019 15:30
Rewelacja !!!! Jeden raz (na z 30 edytowanych plików) użyłem do edytowania pliku wp-config notatnika bezpośrednio na serwerze zmieniając wpisy i wystarczyło żeby spartolić sobie szukaniem problemu kilka godzin.
24 listopada 2019 18:02
U mnie było w porządku do czasu, kiedy wersja PHP na serwerze była 5.3, po aktualizacji do nowszej 7.3, pojawił się ten błąd. Na szczęście dzięki Twojemu wpisowi, udało się to naprawić – Dzięki i wszystkiego dobrego, dobry człowieku :).
5 stycznia 2020 01:32
Wielkie dzięki. Ta ścieżka i ten notatnik uzdrowił mój biały ekran śmierci !