Parsing Fehler und Ausgabepuffer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Parsing Fehler und Ausgabepuffer

    Hallo,

    wenn ich innerhalb eines aktiven ausgabepuffers mit ob_start() einen E_PARSE | E_COMPILE_ERROR php interpreter fehler habe kann ja die fehlermeldung nicht angzeigt werden, da der interpreter bei fehler sofort hält und der ausgabepuffer noch nicht geleert ist. mir kommt das zwar etwas komisch vor und wollte erstmal um bestätigung bitten (der interpreter könnt wenigsten bei einem fehler alle ausgabepuffer leeren bevor er anhält?!)

    die frage einfach mal in der raum - was kann man tun ausser beim entwickeln, im falle eines solchen fehlers die ausgabepufferung auszuschalten, ich mach das über eine variable in der Url &debug=1, das nervt natürlich nach einer zeit.

    Vielleicht kann man irgendwas in den ini einträgen pimpen? oder wat weiss ich, ansonsten muss ich halt damit leben &debug=1

    fra*

  • #2
    Poste doch bitte mal Beispielcode. Ich weiß nicht was du meinst. (Es sei denn du arbeitest mit eval ...)

    Kommentar


    • #3
      tja da gibt es wohl keine andere lösung als das debugflag.

      (btw, ist doch perfekt verständlich!?)
      Zuletzt geändert von frodenius; 02.03.2008, 20:47.
      blllubb

      Kommentar


      • #4
        Ich kann das Problem ehrlich gesagt nicht nachstellen
        der interpreter könnt wenigsten bei einem fehler alle ausgabepuffer leeren bevor er anhält?!
        Das ist in meinem Test der Fall!

        Kommentar


        • #5
          Zumal Parse-Errors schon fest stehen sollten, bevor die Funktion ob_start überhaupt aufgerufen wird.

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Zumal Parse-Errors schon fest stehen sollten, bevor die Funktion ob_start überhaupt aufgerufen wird.
            Du kannst den Parse Error ja in einer eingebundenen Datei haben!

            Kommentar


            • #7
              PHP-Code:
              <?php // test.php
              error_reporting(E_ALL);
              ini_set('display_errors''on');

              ob_start();
              include 
              'test_fail.php';
              ob_end_flush();

              ?>
              PHP-Code:
              <?php // test_fail.php
              parse error here 
              ?>
              Parse error: syntax error, unexpected T_STRING in /.../test_fail.php on line 2

              Kommentar


              • #8
                Ich kann das Problem ehrlich gesagt nicht nachstellen
                Das ist in meinem Test der Fall!
                Hab ich auch schon gesagt!

                Aber der frank scheint sich eh nicht mehr zu kümmern...

                Kommentar


                • #9
                  notfalls hilf try & catch block immer

                  Kommentar


                  • #10
                    notfalls hilf try & catch block immer
                    Seit wann kannst du Fehler fangen?

                    Kommentar


                    • #11
                      Runtime-Fehler schon ... hab' nicht genau gelesen

                      Kommentar


                      • #12
                        ich hab das noch auf dem schirm ... bin leider noch nicht dazu gekommen. ich guck mir das nochmal an evtl. kann ich was posten ist halt nur so innerhalb von klassen schwer das was verständliches rauszunehmen ... till later

                        Kommentar


                        • #13
                          so hallo an alle ... hab das problem nochmal neu aufgerollt. also der fehler liegt an der ob_start() mit callback innerhalb einer klasse. wenn ich folgendes nehmen: ob_start(array(&$this,renderBuffer)) lässt sich eine Parsing Fehler nicht mehr einfangen .. no way, no work around (oder ich hab keinen gefunden?!) es ist wie ich vermutet habe innerhalb der callback function wird bei einem Laufzeitfehler der buffer nicht ausgegeben was eigentlich schade ist (evtl. hab ich ja da einen bug entdeckt!?).

                          hoffe das hilft jemand anderen auch

                          Kommentar


                          • #14
                            Kannst du deine Callbackfunktion einmal posten? Dann kann ich das mal ausprobieren!

                            Kommentar


                            • #15
                              hab den fehler dann doch noch entdeckt - das problem war das ich den buffer in einer property gespeichert habe und nicht wie in der callback methode erwartet den buffer mit return zurückgebe. hab das erst entdeckt nach dem ich das php manual mehrfach gelesen habe. man sollte also immer in der callback methode den buffer returnen. ich hatte einfach nur return "" angegeben!

                              Kommentar

                              Lädt...
                              X