PHP-waarschuwing: Kan headerinformatie niet wijzigen.
English version: PHP Warning: Cannot modify header information
PHP-waarschuwing: Kan headerinformatie niet wijzigen – headers zijn al verzonden in …
Soms zie je dit bericht in het serverfoutlogboek of op een webpagina. Het is frustrerend en lijkt erop te wijzen dat er iets mis is met het PHP-script dat in het bericht wordt genoemd. In werkelijkheid duidt dit bericht op een probleem (een bug) in een ander script, plugin of thema. Je kunt dit bericht krijgen als je een buggy plugin gebruikt en de weergave van PHP-fouten is ingeschakeld, wat normaal gesproken niet de bedoeling is.
Dit bericht verschijnt wanneer een stukje PHP-code op een website uitvoer genereert, meestal een PHP-waarschuwing die helemaal niet verzonden en in de browser van de gebruiker weergegeven zou moeten worden. Deze uitvoer wordt verzonden voordat de header van de webpagina wordt gegenereerd en naar de browser van de gebruiker wordt gestuurd. De header van een webpagina kan leeg zijn of aanvullende informatie bevatten, zoals cookies.
De header moet, ongeacht of deze leeg is of niet, vóór alle pagina-inhoud worden verzonden.
Als een gebrekkige WordPress-plugin een PHP-waarschuwing genereert voordat andere plugins headers naar een browser sturen, leidt dit tot een serverfout met de melding "PHP Warning: Cannot modify header information – headers already sent in …" .
Een dergelijk bericht kan iedereen misleiden, omdat het niet aangeeft welk script of welke plugin de fout heeft veroorzaakt. Wanneer een webserver uitvoer detecteert die door een plugin is gegenereerd zonder dat er een header is verzonden, maakt de server automatisch de header aan en stuurt deze naar de browsers. Hierdoor kunnen alle andere plugins die dit gedrag niet verwachten, hun headers niet verzenden als dat nodig is.
Hoe los ik dit probleem op in de context van het gebruik van WP Cerber Security?
- Schakel de foutmeldingen uit in de PHP-instellingen van je hostingcontrolepaneel. Als je geen toegang hebt tot de PHP-instellingen, neem dan contact op met je hostingprovider voor hulp.
- Schakel de weergave van PHP-fouten uit in de WP Cerber-instellingen op de beheerderspagina 'Beveiliging'.
- In de hoofdinstellingen van WP Cerber stelt u 'Beveiligingsengine laden' in op 'Standaardmodus' of 'Geavanceerde modus'.
- Controleer of de constante WP_DEBUG is gedefinieerd in het wp-config.php-bestand. Zet de regel tussen dubbele schuine strepen // in commentaar of verwijder de hele regel. Zo zou het eruit moeten zien:
// define( 'WP_DEBUG', true );
// define( 'WP_DEBUG', 1 ); - Voeg de volgende regels toe aan het begin van het wp-config.php-bestand:
@ini_set( 'display_errors', 0 );
@ini_set( 'log_errors', 1 );
Kan WP Cerber of WordPress de oorzaak van het probleem zijn?
Nee. De enige code die dit probleem kan veroorzaken, is een verouderde/foutieve plugin of het actieve thema. Hoe vind je de oorzaak? Controleer het serverfoutlogboek. En verwijder alsjeblieft verouderde plugins.