Całkiem nie dawno spotkałem się z błędem “Cannot modify header information - headers already sent by“. Przeszukałem w wyszukiwarce Google pod kątem błędu a możliwości jego rozwiązania i w 80% przypadkach spotykałem tematy gdzie tylko pytający przyjmowali na klatę od innych użytkowników forum, że są leniami bo od czego jest “Wujek“. Dla tych, który znajdą ten wpis mogą przejść od razu do działania.

Co oznacza ten błąd?

Błąd tego typu występuje przeważnie w dwóch przypadkach. Pierwszy jest najczęściej spowodowany błędem “Pana informatyka”, kiedy to po wysłaniu jakichkolwiek danych do przeglądarki, próbuje jeszcze wysłać dodatkowe nagłówki (najczęściej przy pomocy funkcji “header()“), lub kiedy w swoim kodzie strony próbuje przy jednym wywołaniu skryptu wysłać dwa nagłówki.

Drugi przypadek dotyczy przeważnie użytkowników systemu WordPress. Tutaj problem leży po stronie edytowanego pliku “wp-config.php“, w którym znajdują się dane do połączenia z bazą MySQL. Duże grono osób stosuje do tego celu zwykły notatnik, który jest przyczyną problemu.

W tym wpisie opiszę drugi przypadek, gdyż strony naszych klientów opierają się na WordPressie.

Najczęściej błąd przybiera taką postać:

Warning: cannot modify header information – headers already sent by (output started at /www/wp-config.php:1) in /www/wp-includes/pluggable.php on line 881

Po treści błędu, mamy podane jak na tacy, w którym pliku rodzi się problem i jeżeli będzie tam zamieszczony plik wp-config.php, oznaczać to będzie że popełniliśmy błąd przy jego edycji. Ścieżka do plików, lub numer linii kodu, może być różna a wszystko to uzależnione jest od serwera, nazwy konta czy nawet domeny, więc nie sugerujcie się inną ścieżką, tylko nazwami plików.

Rozwiązanie problemu

Podstawową rzeczą, jest wyposażenie się w edytor tekstowy, który obsługuje kodowanie [UTF-8 bez BOM]. Osobiście polecam Notepad++.

Edycja pliku wp-config.php

Ściągamy na dysk plik wp-config.php, i edytujemy go Notepad’em++:

  • robimy na wszelki wypadek kopie pliku
  • zaznaczamy cały kod, u góry w menu Edycja > Zaznacz wszystko, lub po prostu ctrl + a
  • zmieniamy kodowanie na poprawne, u góry Formatuj > UTF-8 (bez BOM)

cannot-modify-header

Zapisujemy plik i wysyłamy go z powrotem na serwer nadpisując tamten stary. W powyższy sposób możemy edytować nie tylko ten konkretny plik ale także 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.

Dosyć często problem pojawiał się w momencie różnych wtyczek. Wówczas ścieżka z błędem kierowała do konkretnego pliku. Szybko się okazało, że wystarczyło po “?>” skasować spacje, które tam były, zapisać plik i nadpisać na serwerze. Komunikat znikał – chyba, że pojawiły się jeszcze inne pliki – nie koniecznie tej samej wtyczki, które miały podobny problem. Wyleczenie ich odbywało się na takiej samej zasadzie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *