Naprawianie błędu “nie można modyfikować nagłówka” w WordPress

Oto frustrujący, ale powszechny błąd WordPress, który może pojawić się znikąd, niszcząc Twoją witrynę za jednym zamachem:

“Warning: Cannot modify header information-nagłówki już wysłane przez (output started at…”

Co gorsza, ten błąd jest kontynuowany, wyświetlając ścieżki do ważnych plików na serwerze, co stanowi potencjalne zagrożenie bezpieczeństwa.

Ale nie martw się! Jest to jeden z łatwiejszych błędów do rozwiązania i w tym poście pokażę Ci, jak to naprawić, a także Jak ukryć komunikaty o błędach przed wyświetlaniem na front-end Twojej witryny.

Skąd bierze się błąd

Oczywiście, ten błąd może wydawać się zastraszający i prawie tak, jakby wystąpił problem z Twoim motywem nagłówek.php plik lub coś podobnego, ale w rzeczywistości ma to związek z dodatkowymi odstępami w jednym z plików. Czasami są dodawane przypadkowo lub automatycznie i wymagają dostosowania.

Błąd wyświetla się, gdy są:

  • Puste linie na górze lub na dole dokumentu
  • Zbyt wiele spacji przed, pomiędzy lub po początku Tagi PHP
  • W określonej części dokumentu jest zbyt wiele niepotrzebnych spacji lub pustych linii

Aby rozwiązać problem z odstępami, musisz najpierw wiedzieć, gdzie to się dzieje. Na szczęście komunikat o błędzie informuje, który plik i linia są dotknięte. Pamiętaj, że możesz zobaczyć tę sekwencję wiele razy na stronie, co oznacza, że istnieje wiele plików, które wymagają naprawy.

Oto podstawowa struktura, na którą należy zwrócić uwagę, aby odszyfrować uszkodzony plik:

Warning: Cannot modify header information-headers already sent by (output started at /path/to/file/broken-file.php:#) in / path / to / file / affected-file.php on line #

Pierwszy plik wymieniony jako / path / to / file / broken-file.php byłby to ten, który wymaga naprawy, a znak # bezpośrednio po nim zostanie zastąpiony liczbą, która powie Ci, którą linię musisz naprawić.

Drugi plik zapisany w tej strukturze jako / path / to / file / affected-file.php jest plikiem, który nie może działać poprawnie, ponieważ pierwszy plik jest uszkodzony. Symbol # na końcu w przykładzie świata rzeczywistego będzie liczbą, która wskazuje linię w dokumencie, który jest dotknięty i nie może działać.

Oto przykład tego, jak ten błąd może wyglądać w Twojej witrynie:

Ostrzeżenie: nie można modyfikować header information-nagłówki już wysłane przez (wyjście zaczęło się w / home / name / You-site / wp-content / themes/your-theme / custom-functions.php: 1) in / home / name / your-site/wp-includes / pluggable.php on line 876

W tym przykładzie nazwa będzie nazwą użytkownika Twojego konta cPanel lub hostingu, a Twoja witryna zostanie zastąpiona nazwą folderu, w którym przechowywana jest Twoja witryna. Błąd, który faktycznie byś zobaczył, wyglądałby inaczej, ale powinien dać ci dobry pomysł, czego się spodziewać.

W tym przykładzie, funkcje niestandardowe.php w folderze mojego motywu znajduje się dokument, który wymaga naprawy, a błąd jest na pierwszej linii.

Na szczęście nie jest strasznie trudno rozwiązać ten problem, chociaż na początku może wydawać się onieśmielający.

Czytaj dalej, aby poznać opcje.

Jak naprawić błąd “nie można modyfikować nagłówka”

Istnieją dwa główne sposoby naprawienia błędu “nie można modyfikować nagłówka”. Jeśli utkniesz po drodze, skontaktuj się z naszą herbatą wsparcia ekspertówM. mogą również pomóc w prawie wszystkim związanym z WordPress, są dostępne 24 godziny na dobę, 7 dni w tygodniu i chętnie Ci pomogą.

W przeciwnym razie z niecierpliwością czekaliby, aż zadasz im pytanie, więc możesz równie dobrze wpaść, jeśli napotkasz problemy, zwłaszcza gdy wsparcie premium i expert jest zawarte w członkostwie WPMU DEV. Jeśli nie jesteś członkiem, nadal możesz wypróbować nas za darmo i poprosić o pomoc eksperta.

Poprawka # 1: Prześlij świeżą kopię

Po przeczytaniu komunikatu o błędzie i ustaleniu, że uszkodzony plik jest częścią rdzenia WordPress lub w inny sposób jest nieodłącznym plikiem wtyczki lub motywu, dostępna jest szybka poprawka.

Jeśli jest to zwykły plik wtyczki lub motywu, możesz go odinstalować i ponownie zainstalować.

Jeśli wolisz tego nie robić lub dotyczy to pliku rdzenia WordPress, możesz pobrać świeżą kopię i rozpakować archiwum ZIP na swój komputer. Znajdź uszkodzony plik w witrynie i zastąp istniejący plik na serwerze świeżą kopią.

Możesz to zrobić za pomocą FTP, SSH lub bezpośrednio przez cPanel.

Poprawka # 2: Edytuj plik z problemami

Po zidentyfikowaniu pliku problemu możesz pobrać jego kopię przez FTP lub SSH lub edytować go bezpośrednio w cPanel.

Usuń wszelkie dodatkowe puste linie lub spacje na początku i końcu dokumentu za pomocą przycisku backspace lub przycisku Usuń na komputerze. Upewnij się również, że nie ma spacji przed, pomiędzy lub po metka na końcu.

Jeśli ostatni wiersz dokumentu nie kończy się na a ?> tag, następnie upewnij się, że nadal nie ma spacji po ostatnim znaku ostatniej linii.

Zapisz plik i prześlij go z powrotem do witryny w tym samym miejscu, nadpisując oryginalny plik.

Nadal nie możesz naprawić błędu?

Jeśli wypróbujesz te poprawki i nadal widzisz ten sam błąd dla różnych plików lub linii, to jest normalne. Powtórz kroki i wyczyść te dodatkowe spacje lub puste linie.

Jeśli widzisz dokładny ten sam błąd co wcześniej, oto kilka dodatkowych uwag, które pomogą Ci dokładnie sprawdzić swoją pracę:

  • Jeśli wyczyścisz wszystkie dodatkowe spacje i linie, ale naciśniesz dowolny inny klawisz, może to spowodować powrót problemu, więc spróbuj ponownie, jeśli tak się stanie.
  • Upewnij się, że w pliku PHP nie ma wielu bloków kodu. Powinieneś mieć tylko jedno otwarcie metka zamykająca na końcu.
  • Upewnij się, że kodowanie pliku jest ustawione na UFT-8. Wprowadź tę zmianę, jeśli jest ustawiona na coś innego i spróbuj ponownie wykonać kroki.
  • Użyj odpowiedniego edytora kodu, jeśli pobierzesz kopię pliku i zapiszesz go na swoim komputerze.
    • Nie używaj popularnych programów do edycji tekstu, takich jak MS Word, ponieważ dodają one dodatkowe formatowanie do dokumentów, które z hamulcem Twojej witryny dalej.

Wyłączanie Raportowania Błędów Front-End

Do tej pory powinieneś mieć naprawione pliki, a brzydki błąd “nie można modyfikować nagłówka” powinien być tak dobry, jak zniknął. Mimo to nic nie powstrzymuje tych błędów przed powrotem i jest widoczne dla wszystkich, którzy odwiedzają Twoją witrynę, w tym hakerów.

Nie jest to najgorsza rzecz, jaka może przytrafić się Twojej witrynie, ale ujawnienie prawdziwych, żywych ścieżek plików na twoim serwerze może dać hakerowi dokładne informacje, których potrzebuje, aby kierować Twoją witrynę. Zamiast zgadywać, gdzie są pliki, aby spróbować je zhakować, zobaczyliby je wyświetlane na widoku. Nothing would stop them z hacking tego pliku bezpośrednio.

Możesz wyłączyć raportowanie błędów front-end i włączyć prywatny dziennik za pomocą WP_DEBUG. Możesz sprawdzić wszystkie szczegóły w jednym z naszych innych postów debugowania WordPress: jak korzystać z WP_DEBUG.

Nota wydawcy: Ten post został zaktualizowany pod kątem dokładności i trafności. [Pierwotnie Opublikowany: Wrzesień 2016 / Zmieniony: Luty 2022]

Tagi: