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 ziet u dit bericht in het serverfoutlogboek of wordt het weergegeven op een webpagina. Het is frustrerend en het lijkt erop dat er iets mis is met het PHP-script dat in het bericht wordt genoemd. In feite geeft dit bericht een probleem (een bug) aan in een ander script, een plugin of een thema. U kunt dit bericht krijgen als u een buggy plugin gebruikt en PHP-fouten weergeven is ingeschakeld, wat normaal gesproken niet zou moeten zijn.
Dit bericht verschijnt wanneer een stukje PHP-code op een website een output genereert, wat doorgaans een PHP-waarschuwingsbericht is dat helemaal niet verzonden en getoond mag worden in de browser van de gebruiker. En deze output wordt verzonden voordat een header van de webpagina wordt gegenereerd en verzonden naar een browser van de gebruiker. De header van een webpagina kan leeg zijn of kan aanvullende informatie verwerken, zoals cookies.
Ongeacht of de header leeg is of niet, moet deze vóór de pagina-inhoud worden verzonden.
Als een buggy WordPress-plug-in een PHP-waarschuwing genereert voordat andere plug-ins headers naar een browser sturen, leidt dit tot een serverfout met de melding "PHP-waarschuwing: kan headerinformatie niet wijzigen – headers zijn al verzonden in …" .
Een dergelijk bericht kan iedereen misleiden omdat het niet vertelt welk script of welke plugin deze fout veroorzaakte. Wanneer een webserver een output detecteert die gegenereerd is door een plugin zonder verzonden header, creëert het automatisch de header en stuurt deze naar de browsers, zodat alle andere plugins die dergelijk gedrag niet verwachten, hun headers niet kunnen verzenden als ze dat nodig hebben.
Hoe dit probleem op te lossen in de context van het gebruik van WP Cerber Security
- Schakel foutweergave uit in de PHP-instellingen van uw hostingcontrolepaneel. Als u geen toegang hebt tot PHP-instellingen, vraag dan uw hostingprovider om hulp.
- Schakel de PHP-fout uit die wordt weergegeven in de WP Cerber-instellingen op de Hardening-beheerpagina.
- In de hoofdinstellingen van WP Cerber stelt u "Load security engine" in op "Standaardmodus" of "Geavanceerde modus".
- Controleer of de WP_DEBUG- constante is gedefinieerd in het wp-config.php-bestand. Commentaar de regel uit met dubbele slashes // of verwijder gewoon de hele regel. Dit is hoe het eruit zou moeten zien:
// define( 'WP_DEBUG', true );
// define( 'WP_DEBUG', 1 ); - Voeg de volgende regels toe aan het begin van het bestand wp-config.php:
@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/buggy plugin of het actieve thema. Hoe vind je de hoofdoorzaak? Controleer het serverfoutlogboek. En verwijder verouderde plugins.