Bertram: Quellcode wird nicht geparst

Hallo zusammen,

ich habe da ein seltsames Problem.
Ab und an wird bei meinem Projekt die aufgerufene Seite nicht geparsed. Es steht also der pure HTML Quellcode da. OK was heißt ab und an, das ist heute zum zweiten Mal passiert, aber es wäre natürlich ungünstig, wenn das auch passiert, wenn das Projekt online geht. Es waren jetzt 2 unterschiedliche Seiten. Ich kann den Fehler auch nicht reproduzieren. Es scheint also willkürlich zu sein. Ich weiß auch nicht ob es ein Fehler ist, oder ob nur der Server nen Knall hat, oder der FF 3.6 spinnt.

Es ist halt ein PHP Projekt mit SQL - Xampp(Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 mit MySQL 5.0.51a)

Vielleicht hat ja mal jemand ähnliche Erfahrungen gemacht, und konnte da wirklich einen Fehler im Skript ausmachen.
Ich denke auch das Quellcode posten jetzt nix bringen würde, da ich an den beiden betroffenen Seiten, auf denen es passiert ist, schon lange nix mehr gemacht hab. Und ich denke das wäre mir schon früher aufgefallen.

MFG
Bertram

  1. Nachtrag//

    In der Apache Access Log finde ich diesen Eintrag, also nur der Quelltext angezeigt wurde:

    127.0.0.1 - - [16/Feb/2010:22:22:59 +0100] "POST /project/login.php HTTP/1.1" 302 -

    Wie können denn auf dem localhost die Daten zu einer anderen URI verschoben werden?!? Und warum?

  2. Hi,

    Ab und an wird bei meinem Projekt die aufgerufene Seite nicht geparsed. Es steht also der pure HTML Quellcode da.

    nun mal langsam!
    Wird HTML-Quellcode im Browser angezeigt, anstatt interpretiert?
    Oder wird PHP-Quellcode an den Browser ausgeliefert, anstatt interpretiert?

    Das sind zwei grundverschiedene Szenarien.

    Ersteres ist entweder ein Fehler des Browsers. Oder aber der Browser verhält sich korrekt, wenn er das Dokument als text/plain bekommt, dann wäre der Fehler eher auf der Serverseite zu suchen.

    Das zweite ist ein Fehler in der Apache-Konfiguration, die dazu führt, dass PHP-Scripte nicht an den PHP-Parser durchgereicht, sondern vom Apachen direkt ausgeliefert werden.

    Je nach Symptom müsste man also an anderen Stellen anfangen zu suchen. Ich gebe aber auch zu, dass es sehr schwierig ist, Fehler zu debuggen, die nur gelegentlich auftreten.

    Es waren jetzt 2 unterschiedliche Seiten.

    Das macht einen Fehler im Script schon mal unwahrscheinlich - es sei denn, beide Scripte enthalten gleiche Module mit dem gleichen Fehler.

    Ich kann den Fehler auch nicht reproduzieren. Es scheint also willkürlich zu sein. Ich weiß auch nicht ob es ein Fehler ist, oder ob nur der Server nen Knall hat, oder der FF 3.6 spinnt.

    Das solltest du anhand des genauen Fehlerbildes herausfinden können. Wenn du Firefox benutzt, lass *immer* die LiveHTTP-Extension mitlaufen, so dass du im Fehlerfall sofort die Header untersuchen kannst.

    So long,
     Martin

    --
    Wenn man keine Ahnung hat - einfach mal Fresse halten.
      (Dieter Nuhr, deutscher Kabarettist)
    1. Hi,

      ja es war reiner HTML Quellcode, soweit ich das gesehen hab. Grad vorher hatte ich Firebug geschlossen, ist ja immer so oO. Und ja die beiden Seiten bauen gleich auf. Also ein "Main" und der Rest wird halt includiert, wie es halt bei größeren Projekten Gang und Gebe ist. Aber ich denke, wenn da der Fehler sitzen würde, müsste dieser öfters auftreten. Denn ich bin ja doch recht viel am Hin und Herklicken :)
      Worauf müsste ich denn bei den Headern achten? Also nur ob es als text/plain ausgeliefert wird?

      In der "Main" gebe ich diese Header mit:

      header('Content-type: text/html; charset=UTF-8');  
      header('Vary: Accept-Encoding');  
      header('Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0');  
      if(strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))  
      	header('Content-Encoding: gzip');	  
      else  
      	header('Pragma: No-cache');	  
      header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');  
      header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
      

      Ich dachte durch den ersten header() sollte das text/plain unterbunden werden?

      1. Hi,

        ja es war reiner HTML Quellcode, soweit ich das gesehen hab.

        den in "<?... ?>" eingeschlossenen PHP-Code wirst Du nur in Ausnahmefällen im Viewport des Browsers sehen. Betrachte den Quellcode der Ausgabe.

        Ich dachte durch den ersten header() sollte das text/plain unterbunden werden?

        Sofern er ausgeführt und nicht später noch überschrieben wird, ja.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes