Problem mit include

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

  • Problem mit include

    Hallo zusammen

    ich habe seit heute ein gaaaanz stranges Problem bei meinem lokalen Apache2 und PHP5.
    Folgendes:
    Meine Startseite und jede Unterseite inkludieren eine header.php, die mir die Menues und alles andere bis zum <body>-Tag auf eine Var speichert, welche ich dann in jeder Seite ausgebe.
    Seit heute kommt, wenn ich irgendeine Seite aufrufe, die header.php inkludiert, einfach eine leere weisse Seite (kein einziger Tag im Quellcode).
    Das komische dabei ist, dass z.B. index.php den Grossteil des html Codes ausserhalb von <?php und ?> generiert. Und trotzdem werden diese Tags nicht angezeigt. Wenn ich aber den include auskommtentiere, dann kommt der html Output (natürlich erst ab dem body Tag).
    Error reporting ist auf all und meldet gar nichts.
    Ein var_dump() der Var im header.php bringt nichts. Überhaupt nichts. Die Var, auch wenn sie leer wäre müsste doch den Type string angeben
    Auch ein var_dump() nach dem include() bringt das gleiche Resultat. Nur wenn ich den include auskommentiere kommt eine Ausgabe.

    Ich kann mir das einfach nicht erklären, warum keine Ausgabe erfolgt, obwohl zumindest ein Teil des html Codes nicht mit echo ausgegeben wird.
    Hat jemand eine Idee in welche Richtung ich suchen könnte um das Problem zu lösen.

    Vielen Dank und Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

  • #2
    überprüfe mal deine header.php auf irgendwelche fehler und schau in der php.ini ob
    display_errors = On gesetzt ist
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ansonsten poste mal deine header.php (wenn sie nicht ZUU gross ist)
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Kommentar


      • #4
        display_errors = On gesetzt ist
        Sind auf on. Weil ich auf jeder Seite eine Fkt aufrufe, die in header.php deklariert wurde. Wenn ich die header auskommentiere und den Fkt Aufruf drinlasse kriege ich einen Error bezüglich undefined function.
        überprüfe mal deine header.php auf irgendwelche fehler
        Habe mir mal zum Testen die header.php von meiner Webseite geladen, die Online auch funzt. Auf meiner lokalen Umgebung funzt es aber gleich ned.
        Also denke ich, dass da keine so gravierenden Fehler drinn sein könnten. Auch ein
        PHP-Code:
        echo 'blabla';
        exit; 
        am Ende der header.php ergibt keine Ausgabe

        Gruss und Danke

        tobi

        @hhcm
        Danke vielmals für das Angebot, aber die Datei ist gut 70kb schwer. Ausserdem glaube ich nicht, dass der Fehler dort drin sein kann, weil es auf dem Web ja funzt
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Bekommst du denn irgendetwas wenn in deiner header.php

          PHP-Code:
          <?php
          die("muuuh");
          // Restlicher Code
          ?>
          steht?
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #6
            @hhcm
            Also wenn ich das als erste Zeile schreibe, dann kriege ich eine Ausgabe. Wenn ich es aber als letzte Zeile schreibe, dann kommt nix raus bei

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              dann tust du Schritt für Schritt nach unten gehen und probierst aus...man ey, warum wollen die User immer halb verdautes, wie wäre es mit selber kauen? >_>

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

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

              Kommentar


              • #8
                dann tust du Schritt für Schritt nach unten gehen und probierst aus
                Und genau das habe ich gemacht und so konnte ich auch den Block einkreisen, wo mir die Var "verloren" geht. Wenn ich die die-Sache am Anfang des Blockes mache, hat die Var noch einen Inhalt. Am Ende des Blockes ist nichts mehr vorhanden. Nicht mal NULL oder ''.
                Die Var heisst temp und in dem fraglichen Block hänge ich nur Strings an $temp an. Sie wird 100% nicht neu definiert. Aber auch wenn, dann müsste ein var_dump() ingendeine Ausgabe erzeugen.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  code?
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    So jetzt habe ich das Prob gefunden.
                    In der header habe ich eine Fkt welche mir die Menues erstellt. Dazu braucht sie eine Datei, welche ich inkludiere. Damit es sowohl auf dem Web als auch lokal funzt habe ich mir $_SERVER['DOCUMENT_ROOT'] gearbeitet, um die Datei einzubinden.
                    Bis jetzt hat das auch gefunzt, aber seit heute will meine Kiste den Pfad nur noch so D:\pfad\zur\datei.php. Ausserdem wurde kein Fehler geworfen obwohl die Datei nicht gefunden wurde.
                    Musste jetzt eben eine Abfrage vor den include einbauen, um festzustellen ob ich auf dem Server des Hosters oder meinem Laptop bin.
                    Na so funzt es wenigstens.

                    Danke an alle für Eure Tipps

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Besorg dir für solche sachen mal ZEND Studio.. Mit dem integrierten Debugger wäre das eine 2 Minuten sache gewesen.
                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Kommentar


                      • #12
                        Salut hhcm
                        ich zweifle daran, dass der Debugger den Fehler gefunden hätte. Denn nachdem es wieder funzte, habe ich den Pfad wieder auf
                        Code:
                        $_SERVER['DOCUMENT_ROOT'].'/pfad/zur/datei.php';
                        Und es funzte immer noch. Also denke ich, dass der Pfad korrekt war und auch der Debugger daher keinen Fehler gefunden hätte. Ich hatte error_reporting ja auf all und ein falscher Pfad bei include() sollte gemäss Man eine warning geben, was aber nicht der Fall war.

                        Ganz ehrlich habe ich kein Ahnung warum das Problem auftrat und jetzt unter den genau gleichen Bedinungen wieder verschwunden ist.

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar

                        Lädt...
                        X