Skip to content

Troubleshooting -- Laminas-Error

Problem: Laminas-EmitterException in WHMCS

Da die FameSystems WHMCS-Module fuer PHP 8.2+ entwickelt wurden, kann es in aktuellen WHMCS-Versionen zu Fehlern kommen, weil WHMCS einige Abhaengigkeiten nicht korrekt aktualisiert.

Ein bekannter Fehler tritt in der Laminas-HttpHandlerRunner-Komponente auf:

Fehlermeldung

Laminas\HttpHandlerRunner\Exception\EmitterException: Output has been emitted previously;
cannot emit response in /home/username/public_html/members/vendor/laminas/laminas-httphandlerrunner/src/Exception/EmitterException.php:24
Stack trace:
#0 /home/username/public_html/members/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitterTrait.php(40):
   Laminas\HttpHandlerRunner\Exception\EmitterException::forOutputSent()
#1 /home/username/public_html/members/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitter.php(27):
   Laminas\HttpHandlerRunner\Emitter\SapiEmitter->assertNoPreviousOutput()
#2 /home/username/public_html/members/clientarea.php(0):
   Laminas\HttpHandlerRunner\Emitter\SapiEmitter->emit(Object(WHMCS\ClientArea))
#3 {main}

Ursache

WHMCS nutzt eine veraltete Version der Laminas-Bibliothek, die nicht mit PHP 7.3 oder hoeher kompatibel ist. Da WHMCS diese Abhaengigkeit nicht automatisch aktualisiert, ist eine manuelle Anpassung noetig.


Loesung: Laminas-Patch anwenden

1. Datei oeffnen

Navigiere zu folgendem Pfad in deinem WHMCS-Verzeichnis:

WHMCS/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitterTrait.php

2. Code anpassen

Suche nach dieser Code-Stelle (Zeile 39-41):

if (ob_get_level() > 0 && ob_get_length() > 0) {
     throw EmitterException::forOutputSent();
}

Ersetze sie mit folgendem Code:

if (ob_get_level() > 0 && ob_get_length() > 0) {
     while(ob_get_level() > 0){ob_end_clean();}
}

3. Aenderungen speichern

Speichere die Datei. Der Fehler sollte damit behoben sein.

Hinweis

Nach einem WHMCS-Update kann diese Aenderung ueberschrieben werden. Pruefe nach Updates, ob der Patch noch vorhanden ist.


Weitere Unterstuetzung

Falls der Fehler weiterhin auftritt, kontaktiere unser Support-Team:

Reseller-Support kontaktieren