Rafael: Funktionsweise von error_reporting(0);

Ich hätte mal eine Frage zur Arbeitsweise von error_reporting(0);
Wenn ich diese Funktion am Anfang eines PHP-Dokumentes aufrufe, dann sollten doch keine Fehlermeldungen mehr ausgegeben werden. Leider werden sie das trotzdem noch.

Ich habe das Problem, dass ein Kunde den Server nicht wecheln will und dort Fehlermeldungen standardmäßig aktiviert sind. Der Betreiber ist auch nicht zu einer Umstellung bereit. Mit ini_set bekomme ich eine Fehlermeldung, wird also auch nicht gestattet. htaccess geht auch nicht...

Wieso also hat diese Funktion keine auswirkung? Ich kann Fehlermeldungen ja auch unterbinden wenn ich ein @ vor jede Funktion hänge. Versteht mich nicht falsch, das Skript funktioniert einwandfrei. Ich hätte die Fehlermeldungen einfach gerne aus gesehen.

  1. Hallo Rafael,

    Versteht mich nicht falsch, das Skript funktioniert einwandfrei.

    Wen das der Fall waere, wuerdest du keine Fehlermeldungen sehen.

    Gruß,

    Dieter

    1. Wen das der Fall waere, wuerdest du keine Fehlermeldungen sehen.

      Das tue ich im Normalfall auch nicht. Sollte sich aber jemand soweit mit der Anwendung spielen könnte ihm die Ausgabe von Fehlern, die ich in ihrem Zustandekommen nicht bedacht habe nutzen, an sensible Daten zu kommen. Das ist dann zwar vielleicht nicht meine Schuld, ich habe auf diesen Umstand aufgemacht. Lieber wäre es mir aber doch, würde error_reporting(0) sich verhalten wie ich es mir wünsche...

      Da sich aber trotz einfügen dieser Zeile nichts tut und ein absichtlich fabrizierter Fehler weiterhin ausgegeben wird, wundere ich mich.

      1. Hallo Rafael,

        Da sich aber trotz einfügen dieser Zeile nichts tut und ein absichtlich fabrizierter Fehler weiterhin ausgegeben wird, wundere ich mich.

        wenn Du in der Lage bist, einen Fehler zu reproduzieren, dann solltest Du auch in der Lage sein, auf diesen Fehler adäquat zu reagieren. Du kennst derzeit mindestens einen Fehler, den Du nicht abgefangen hast.

        Die Lösung ist einfach: Fange ihn ab.
        Mache das gleiche mit allen anderen Fehlern :-)

        Freundliche Grüße

        Vinzenz

        1. Hallo Vinzenz,

          Die Lösung ist einfach: Fange ihn ab.
          Mache das gleiche mit allen anderen Fehlern :-)

          Und für alle restlichen Fehler, die man gerne loggen statt dem Benutzer mitteilen möchte, gibt es display_errors, log_errors und error_log als Konfigurationsschalter in der php.ini oder auch teilweise via ini_set() (dann aber besser via .htaccess).

          Grüße

          Marc Reichelt || http://www.marcreichelt.de/

          --
          Linux is like a wigwam - no windows, no gates and an Apache inside!
          Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)