Support » Allgemeine Fragen » Warnings werden angezeigt obwohl WP_DEBUG auf false eingestellt ist.

  • Gelöst mumbomedia

    (@mumbomedia)


    Auf mehreren unserer WordPress-Installationen ist der Fehler schon aufgetreten, dass Warnungen angezeigt wurden obwohl das Debugging deaktiviert ist (Was ja standardmäßig so ist.)

    Beispiel Revolution Slider auf PHP 7.3: Warning: „continue 2“ targeting switch is equivalent to „break 2“. Did you mean to use „continue 3“? in \wp-content\plugins\revslider\includes\operations.class.php on line 2858

    Irgendeine Idee was ich einstellen kann, damit die Warnungen in Zukunft nicht mehr auftauchen.

Ansicht von 13 Antworten - 1 bis 13 (von insgesamt 13)
  • bscu

    (@bscu)

    Irgendeine Idee was ich einstellen kann, damit die Warnungen in Zukunft nicht mehr auftauchen.

    Das ist aber der falsche Weg. Anstatt Warnings zu unterdrücken sollte man besser zusehen, dass der Quellcode fehlerfrei ist.

    Zur Info: dieses Warning gibt es erst sein PHP 7.3, man findet im Netz Infos, wie man dieses Problem im Script beheben kann.

    @bscu

    „Das ist aber der falsche Weg. Anstatt Warnings zu unterdrücken sollte man besser zusehen, dass der Quellcode fehlerfrei ist.“

    Das ist schon richtig, aber ja wohl Sache des jeweiligen Plugin- / Theme-Autors.
    Auch tauchen diese Warnings bei PHP 7.2 auf.

    Der Zweck von WP_DEBUG ist ja, solche Fehler anzuzeigen bzw. zu loggen.
    Auf Live-Systemen sollen diese aber abgefangen und nicht angezeigt werden.
    Denn die Pfadangaben die in den Meldungen ausgegeben werden sind gefundenes Fressen für Hacker und niemand will, dass seine Seite gehackt und ggf. kompromitiert wird.
    Somit ist diese Antwort wenig hilfreich.

    Somit ist diese Antwort wenig hilfreich.

    Wenn du meinst…

    Es könnte auch das Error-Reporting von PHP auf dem Server eingeschaltet sein, da spielt die Einstellung von WP_DEBUG keine Rolle mehr.

    Und wenn der Hersteller den Fehler noch nicht behoben hat, dann bleibt dir ja nichts anderes übrig, auf das Plugin zu verzichten oder den Fehler selber zu beheben.

    Aber auch diese Antwort wird in deinen Augen wenig hilfreich sein. 🙁

    Ja, vermutlich ist display_errors in PHP nicht auf 0 gesetzt. Falls du Zugriff darauf hast, solltest du es auf display_errors=0 ändern. Es gibt aber auch WordPress-Plugins, mit denen man Debug-Informationen anzeigen lassen kann.

    Du könntest den Eintrag define('WP_DEBUG', false); (falls vorhanden) in der wp_config.php ändern in:

    ini_set('display_errors','Off');
    ini_set('error_reporting', E_ALL );
    define('WP_DEBUG', false);
    define('WP_DEBUG_DISPLAY', false);

    oder statt ersetzen neu eintragen, das sollte die Warnungen unterdrücken.

    Oder den Code noch ausweiten -> https://php.net/manual/de/function.error-reporting.php

    das sollte die Warnungen unterdrücken

    Wenn ini_set nicht auch serverseitig deaktiviert wurde, was nämlich auch möglich ist. 😉

    Gute Ergänzung :), dann ist der Provider gefragt.

    @bscu
    Richtig, das Error-Reporting wird zur Laufzeit durch das Setzen von WP_DEBUG an oder ausgeschaltet. Hierfür wird das erwähnte ini_set benötigt, was in unseren Fall möglich ist. In Kombination mit WP_DEBUG_DISPLAY und WP_DEBUG_LOG werden zur Laufzeit noch weitere PHP-Einstellungen gesetzt (ebenfalls per ini_set). Somit werden die Default-Werte überschrieben, sodass es egal ist, ob das error_reporting standardmäig aus oder angeschaltet ist. In unseren Fall ist der Standard an, Anzeige nein, Logging ja. Dies macht bei einem Live-System meiner Meinung nach auch am meisten Sinn.

    Wie gesagt, werden seit PHP 7 vermehrt Exceptions statt Errors geworfen und ich vermute, dass WordPress noch keinen Code zum Abfangen dieser besitzt obwohl der Handler für beide Varianten ab PHP 7 gleich ist, da aber dieser Version sowohl Errors als Exceptions das Throwable-Interface erben. Es muss allerdings nicht nur set_error_handler sondern auch set_exception_handler aufgerufen werden, damit PHP den entsprechenden Handler nutzt.

    Bislang hat die Standardeinstellung von WP_DEBUG dafür gesorgt, dass die Meldungen nicht angezeigt wurden, somit liegt die Vermutung nahe, dass etwas am Code von WordPress geändert wurde, sodass es mit PHP 7 nicht mehr korrekt greift.
    Dies ist meiner Meinung nach ein Problem, dass die Entwickler von WordPress beheben sollten. Daher habe ich es hier veröffentlich in der Hoffnung, dass Sie es bemerken, den Fehler prüfen und beheben.

    • Diese Antwort wurde geändert vor 5 Monate, 3 Wochen von  mumbomedia.

    (@la-geek)
    Ne, dieser ist standardmäßig auf 0 eingestellt.
    Das ist es ja was mich wundert. Mit der PHP 5.6 werden keine Fehler angezeigt nur verlangen ja einige Plugins PHP 7.0 oder höher.

    Das hatte ich bereits probiert, hat aber nichts genützt.

    Daher ja auch meine Vermutung, dass es keine richtige Error-Meldung sondern eine Exception ist. Auch ein Bug in PHP selbst halte ich für möglich.

    Hast du denn mal in

    \wp-content\plugins\revslider\includes\operations.class.php

    Zeile 2858 angesehen? Meist ist das nur ein kleiner Fehler, den man selber korrigieren kann.

    @la-geek
    Der Fehler scheint ja nun im Revolution Slider behoben zu sein.

    Dieser war auch nur als Beispiel gedacht, Fehlermeldung dieser Art habe ich auch von anderen Plugins / Themes bekommen.

    Ich versuche dann natürlich, diese zu beheben, was mir meistens auch gelingt.
    Manchmal ist aber nicht sofort ein Update verfügbar. Da wäre es natürlich schön, wennn diese Meldungen nicht angezeigt würden und somit unsere Kunden verunsichern.
    In regelmäßigen Abständen werden alle unsere WP-Installationen aktualisiert, sodass diese aktuell und somit sicher sind. In der Zeit bis diese Updates verfügbar und installiert sind, sollten wie bislang auch Fehler nur geloggt aber nicht sichtbar sein.

    Werde mir mal ansehen, wie es beim Revolution Slider behoben wurde.
    Vielleicht ergeben sich dadurch neue Erkenntnisse.

    Vergleich hat leider keine neuen Erkenntnisse zum Unterdrücken.
    Der Fehler wurde schlicht durch Ändern der Zahl hinter continue behoben.

    Bislang sind auch keine Meldungen dieser Art mehr aufgetaucht.
    Werde es weiter beobachten. Sobald sich etwas ergibt, wird es hier umgehend veröffentlicht.

    Die Ursache ist nun gefunden und behoben worden.
    Es war global in der php.ini die Einstellung display_errors aktiviert.
    Wurde nun geändert und seitdem werden die Fehler nicht mehr im Frontend angezeigt.
    Daher schließe ich diesen Thread.

Ansicht von 13 Antworten - 1 bis 13 (von insgesamt 13)