Gerdi: PHP-Fehler ausgeben

Mojn, ich habe ein kleines Testprogramm geschrieben und ins Internet geladen. Ich habe eigentliche eine Ausgabe erwartet, es kommt allerdings ein leerer Bildschirm. Wie kann ich angeben, dass ggf. eine Fehlermeldung ausgegeben wird? Gruß Gerdi

  1. Ergänzung: Da das Programm andere UPs aufruft, sollte die Einstellung möglichst über Routine im Root-Verzeichnis möglich sein.

  2. Hallo Gerdi,

    siehe das erste Benutzerbeispiel auf der error_reporting Seite im PHP Handbuch.

    error_reporting(E_ALL) sorgt dafür, dass keine Meldung unterdrückt wird.

    ini_set("display_errors", 1) sorgt dafür, dass Fehlermeldungen in den Ausgabestrom (also in den Browser) geschrieben werden.

    Diese Einstellung gilt ab dem Moment, wo Du sie setzt, bis zum Ende des PHP Requests (bzw. bis zu dem Moment, wo Du sie wieder abschaltest). D.h. auch für UP.

    Wenn Du auf die php.ini Zugriff hast, kannst Du beides auch dort setzen - sollte man aber nur tun, wenn dieses PHP einen reinen Testbetrieb bildet.

    Wenn Du weißt, ob und wohin dein PHP eine Error-Logdatei schreibt, kannst Du auch log_errors auf 1 setzen und findest die Meldungen dann dort statt mitten ins HTML geklatscht.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo Gerdi,

      Danke Rolf, es klappt!

  3. und ins Internet geladen

    Hm. „Ins Internet“ … Da gibt es aufregend (unfassbar) viele Möglichkeiten, etwas falsch und/oder etwas richtig zu machen - was dann halt nicht funktioniert, weil etwas anderes „falsch“ ist.

    • Was zur Hölle bedeutet also „ins Internet“?

    PHP-Fehler landen in einem Error-Log. Informiere Dich, wo dieses auf Deinem System ist. Du teilst uns dazu (zu Deinem System) nicht einmal die Mindestangaben (Betriebsystem, welches PHP wie installiert) mit.

    es kommt allerdings ein leerer Bildschirm

    „Leerer Bildschirm“ ist ein „weites Feld“.

    • Hast Du - im Quelltext - der resultierenden Webseite nachgesehen, ob nicht etwa Dein PHP-Skript zurückgeben wurde, statt die Ergebnisse dessen Abarbeitung? Dann sieht man (wenn die gesamte Seite PHP ist, also nicht in HTML eingebettetes PHP ist) eine - vermeintlich - leere Seite…
    • Hast Du also schon mal die Entwicklertools Deines Browser benutzt um zu sehen, ob eventuell ein Fehlerstatus geliefert wurde?

    Du musst schon „Butter bei die Fische tun“ - sonst gibt es unfassbar viele Möglichkeiten.

    1. und ins Internet geladen

      Hm.

      Rolf hat mich verstanden.

      1. und ins Internet geladen

        Hm.

        Rolf hat mich verstanden.

        Das Rolfs Ratschlag (naja: er hat ja geraten) geholfen hat, ist „komplett Spedition“, also reiner Zufall. Du musst an Deinem Fehlerbeschreibungen arbeiten und überlegen, welche Informationen für potentiell Helfende selbst hilfreich sein könnten.

        Und, wenn wir schon dabei sind:

        ini_set( "display_errors", 1 );
        

        Das ist auf Produktivservern (erst recht solchen „im Internet“) aus Gründen der Sicherheit allenfalls zeitweise eine gute Idee. Getestet wird wo anders… und der Kenner schaut sowieso ins Error-Log.

        1. Getestet wird wo anders… und der Kenner schaut sowieso ins Error-Log.

          An meiner Frage hätte man erkennen können, dass ich

          1. nicht wo anders testen kann
          2. kein Kenner bin um ins Error-Log zu schauen.
          1. Hallo Gerdi,

            beides solltest Du versuchen, abzustellen.

            • Für eine öffentliche Webseite ist eine lokale Testversion sehr sinnvoll. Bau Dir im Zweifelsfall ein Testsystem mit einem Raspi oder als virtuelle Linux-Maschine unter Windows auf. Mein Testsystem läuft unter Windows IIS, auch der kann PHP. Im Detail gibt's Unterschiede zu einem Apache unter Linux, klar, aber für die Fachlogik reicht es immer.
            • Kenntnisse über den Betrieb eines PHP Systems sind bei der Verwendung eines PHP Systems auf Dauer unverzichtbar.

            Rolf

            --
            sumpsi - posui - obstruxi
      2. Hallo Gerdi,

        ich bin halt vom dümmsten möglichsten Startpunkt ausgegangen (an dem ich zu Beginn meiner PHP-"Karriere" auch war) und habe Dir die passende Stelle aus dem Handbuch vorgelesen.

        Ich hätt ja auch einfach einen Link posten können…

        Guckst Du hier...

        Rolf

        --
        sumpsi - posui - obstruxi