Help
Posted By Gregory

PHP Warning: Nie można zmodyfikować informacje nagłówka


English version: PHP Warning: Cannot modify header information


Ostrzeżenie PHP: Nie można zmodyfikować informacji nagłówka – nagłówki już wysłane …

Czasami możesz zobaczyć ten komunikat w dzienniku błędów serwera lub wyświetlić go na stronie internetowej. Jest to frustrujące i wygląda na to, że coś jest nie tak ze skryptem PHP, o którym mowa w wiadomości. W rzeczywistości ten komunikat wskazuje na problem (błąd) w innym skrypcie, wtyczce lub motywie. Możesz otrzymać tę wiadomość, jeśli używasz wadliwej wtyczki i wyświetlanie błędów PHP jest włączone, co normalnie nie powinno być.

Ten komunikat pojawia się, gdy jakiś fragment kodu PHP w witrynie generuje dane wyjściowe, które zazwyczaj są wiadomościami ostrzegawczymi PHP, które w ogóle nie powinny być wysyłane i wyświetlane w przeglądarce użytkowników. I to wyjście jest wysyłane przed wygenerowaniem nagłówka strony internetowej i wysłaniem do przeglądarki użytkownika. Nagłówek strony internetowej może być pusty lub może obsługiwać dodatkowe informacje, takie jak pliki cookie.

Niezależnie od tego, czy nagłówek jest pusty, czy nie, należy go wysłać przed treścią strony.

Jeśli wadliwa wtyczka WordPressa generuje ostrzeżenie PHP, zanim inne wtyczki wyślą nagłówki do przeglądarki, prowadzi to do błędu serwera z komunikatem „Ostrzeżenie PHP: Nie można zmodyfikować informacji nagłówka – nagłówki już wysłane …” .

Taka wiadomość może wprowadzić w błąd każdego, ponieważ nie informuje, który skrypt lub wtyczka spowodowała ten błąd. Kiedy serwer sieciowy wykryje jakiekolwiek wyjście wygenerowane przez wtyczkę bez wysłanego nagłówka, tworzy nagłówek automatycznie i wysyła go do przeglądarek, więc wszystkie inne wtyczki, które nie oczekują takiego zachowania, nie mogą wysyłać nagłówków, jeśli potrzebują .

Jak rozwiązać ten problem w kontekście korzystania z WP Cerber Security

  1. Wyłącz wyświetlanie błędu w ustawieniach PHP panelu sterowania hostingu. Jeśli nie masz dostępu do ustawień PHP, poproś dostawcę usług hostingowych o pomoc.
  2. Wyłącz wyświetlanie błędu PHP w ustawieniach WP Cerber na stronie administracyjnej Hardening.
  3. W Ustawieniach głównych WP Cerber ustaw „Load security engine” na „Standard mode” lub „Advanced mode”.
  4. Sprawdź, czy stała WP_DEBUG jest zdefiniowana w pliku wp-config.php. Skomentuj linię podwójnymi ukośnikami // lub po prostu usuń całą linię. Tak powinno wyglądać:
    // define( 'WP_DEBUG', true );
    // define( 'WP_DEBUG', 1 );
  5. Dodaj następujące wiersze na początku pliku wp-config.php:
    @ini_set( 'display_errors', 0 );
    @ini_set( 'log_errors', 1 );

Czy przyczyną może być WP Cerber lub WordPress?

Nie. Jedynym kodem, który może spowodować ten problem, jest przestarzała / wadliwa wtyczka lub aktywny motyw. Jak znaleźć przyczynę? Sprawdź dziennik błędów serwera. I pozbądź się przestarzałych wtyczek.

Last posts from WordPress security blog


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.