Blog

Cannot modify header information – headers already sent by

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 prostu ctrl + a
  • kopiujemy cały kod, u góry Edycja > Kopiuj lub ctrl + c
  • zmieniamy kodowanie na poprawne, u góry Formatuj > UTF-8 (bez BOM)
  • ponownie zaznaczamy cały kod Edycja > Zaznacz wszystko, lub ctrl + a
  • wklejamy wcześniej skopiowany kod Edycja > Wklej lub ctrl + 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.

Jeśli spodobał się Wam ten wpis albo okazał się przydatny, pomóżcie nam go wypromować aby trafił do jak największej ilości osób - wystarczy że podzielicie się nim z innymi:

76 Komentarzy

  1. 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 :)

  2. Super, działa! Świetny poradnik (: Pozdrawiam

  3. Super poradnik.

    Główny problem polegał u mnie na edycji wp-config.php w notatniku. Naturalnie, wszystko już działa ;-)

  4. Dzięki, pomogło! Zapamiętam na przyszłość z notatnikiem :)

  5. 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 :)

  6. Dzięki. Prosto i na temat. Pozdrawiam

  7. dzięki. Trafione w punkt!

  8. Dzięki wielkie, po dłuższej chwili googlowania trafiłem tutaj – problem wyeliminowany z moment, z notatnikiem nauczka na przyszłość. :-)

  9. 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…

  10. Dzięki. Kilka dni szukałem rozwiązania i dopiero to pomogło.

  11. Dzięki. Bardzo się przydało. Jesteś mistrzem.

  12. 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.

  13. 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

    • 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.

  14. Wielkie dzięki po zmianie na notepad++ i wykonaniu instrukcji z poradnika wszystko działa i problem zniknął ;)

  15. Dzięki wielkie! Tego szukałam : D Jeden ważny drobiazg i problem z głowy.

  16. 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…

  17. 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

  18. 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.

  19. 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.

  20. Serdecznie dziękuję za poradę!

  21. Ja nie miałem kodowania UTF-8 bez BOM w functions.php
    Po zmianie pomogło, super dzięki :)

  22. 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!

  23. 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ę.

  24. 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),

  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?

    • Na pewno edytujesz dobry plik? W Twoim wypadku problem nie leży po stronie wp-config.php, lecz /wp-content/themes/osp/functions.php

  26. U mnie to niestety nie pomogło ;/

  27. 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

    • 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.

      • u mnie był konflikt jednej z wtyczek
        jak ja skasowałem jest ok

  28. OMG, dzięki! Zadziałało :)

  29. Ogromne dzieki dobry czlowieku ! Jest wielki !

  30. Dziękuję, 100% skuteczne.
    Ale jestem z siebie dumny, że nie założyłem nowego tematu na forum :)

  31. 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?

    • Jak możesz to pokaż cały komunikat błędu.

      • 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

      • Spróbuj wyłączyć wtyczkę cForms, jeśli to pomoże, wtedy usuń ją, pobierz i wgraj od nowa.

      • – 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

      • W takim wypadku proponuję się skontaktować z autorem wtyczki.

  32. 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.

    • 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)?

  33. wielkie dzięki pomogło
    „UTF-8 (bez BOM)”

  34. Wielkie, wielkie dzięki! Mi ten problem pojawił się po przenosinach strony na inny hosting. Ale po zmianie kodowania wszystko elegancko chodzi.

  35. Dziękuję. Wszystko działa. Błędy poznikały a ja mogłem w końcu zalogować się do kreatora. :-)

  36. Dzięki za pomoc! Teraz wszystko działa jak należy! :)

  37. 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!

  38. Dzięki!. Pomogło

  39. KIedyś też miałem taki problem, pomogło przerzucenie się na notepad++

  40. kozak! działa!!!

  41. Dzięki!!!!!!!!!!!!! Wszystko teraz działa

  42. Dzięki wielkie! wszystko śmiga :)

  43. Pomogło !!! :)
    Przez pół dnia szukałem błędu w kodzie a wystarczyło w notepad++ zmienić encoding na UTF8 bez BOM

  44. Popsułem WP-CONFIG Notatnikiem. Teraz naprawione.
    Dzięki!

  45. Bardzo dziękuję za pomoc!

  46. Gdybym mogła, to bym Cię ucałowała!!!!

  47. Dziękuję! Tego mi trzeba było, wszystko działa!

  48. Notatnik też daje radę, tylko trzeba zapisać plik z innym kodowaniem niż UTF8 (zapisz jako i odpowiedni przycisk jest na dole okienka dialogowego).

  49. 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

  50. Dzięki! UTF-8 bez BOM rzeczywiście rozwiązuje problem.

  51. 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 :)

  52. pomocne, dzięki wielkie

  53. Dziękuję! Bardzo pomocny wpis, znów wszystko działa!

  54. Dziękuje – bardzo mi pomogłeś.

  55. Ja już robiłam cuda, i nic nie pomoga. Zmiana kodowania też nie.

    • 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ć.

Pingback / Trackback

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

Portal cały czas się rozwija, jeżeli chcielibyście nam w tym pomóc, to zapraszamy do kontaktu, nigdy za wiele rąk do pracy :)

Jeżeli macie jakieś sugestie odnośnie Portalu, jego treści, zawartości, albo znaleźliście jakieś błędy, lub literówki, nie wahajcie się napisać nam o tym.
Aby pomóc nam w promocji Portalu, podzielcie się nim na swoich blogach lub stronach. Jeżeli podoba się Wam nasza koncepcja, albo znaleźliście tutaj pomoc, to pomóżcie także innym do nas trafić.

Wystarczy nam nawet najzwyklejszy link w stopce, albo w sidebarze :)