php-Code wird ausgegeben

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

  • php-Code wird ausgegeben

    Hallo,

    ich habe eine php-Seite gemacht, die seit Jahren auf einem Server ohne Probleme läuft und richtig angezeigt wird.

    Aber bei mir lokal wird ab einer gewissen Stelle der php-Code angezeigt und ich krieg einfach nicht raus, warum.
    So sieht das aus:

    Das geht über ziemlich viele Zeilen so.
    Der Rest darunter wird wieder ganz normal dargestellt.

    Die php-Version ist die gleiche, wie auf dem Server.
    Ich habe natürlich schon die lokale- und die Server-php.ini verglichen, aber den möglichen Unterschied nicht gefunden.
    register_long_arrays ist auf dem Server "On" - war's aber nicht.
    register_globals war's auch nicht.

    Tja, ich finde es nicht raus.
    Etwas Hilfe würde mich sehr freuen.

    Grüße, Hago
    Angehängte Dateien

  • #2
    Meine Glaskugel sagt: short_open_tag
    Wir werden alle sterben

    Kommentar


    • #3
      Hallo,

      leider liegt es daran nicht.
      Ich habe tatsächlich überall "<?php" stehen.


      Hago

      Kommentar


      • #4
        Meine Glaskugel ist da sehr eindeutig!
        phpinfo() würde dir auch bestätigen/widerlegen, dass auf einem der beiden Systeme dieses abgeschaltet ist.

        Ansonten:
        Ohne Code nichts los!
        Wir werden alle sterben

        Kommentar


        • #5
          Hallo combie,

          du hast doch Recht gehabt.

          ich habe jetzt mal versuchsweise in der php.ini "short_open_tag" auf "On" gestellt und alles wird richtig angezeigt.
          Das war auch der Unterschied zum Server. Dort ist "short_open_tag" auch auf "On".

          Das verblüfft mich, weil auf der Seite nirgends ein "<?" ohne "php" dahinter benützt wird.
          Ich habe auch die wenigen Includes durchsucht und nichts gefunden.

          Wie kann das sein?

          Hago

          Kommentar


          • #6
            Zitat von hago Beitrag anzeigen
            Wie kann das sein?
            Du hast falsch durchsucht oder die falschen Dateien durchsucht. Oder es wird PHP-Code dynamisch erstellt, der Short-Open-Tags beinhaltet.

            Kommentar


            • #7
              Zitat von hago Beitrag anzeigen
              Hallo combie,

              du hast doch Recht gehabt.



              Das verblüfft mich, weil auf der Seite nirgends ein "<?" ohne "php" dahinter benützt wird.
              Ich habe auch die wenigen Includes durchsucht und nichts gefunden.
              Da du schon einmal falsch lagst, lautet die Frage: Wie hast du herausgefunden, dass in allen benutzten Script-Dateien nur '<?php' aber niemals '<?' alleine verwendet wurde?

              PHP-Code:
              preg_match('/<\?(?!php)/'file_get_contents($php_src)); 
              Zuletzt geändert von fireweasel; 20.01.2015, 20:58. Grund: typo
              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

              Kommentar


              • #8
                Hallo,

                entschuldige, dass ich so spät antworte, aber ich habe gar nicht bemerkt, dass du geschrieben hast.

                Ich habe deinen Rat natürlich sofort befolgt, aber das Ergebnis ist, dass eben kein Short-open-tag gefunden wurde.

                So habe ich es gemacht:
                --------
                $php_src = "l-proli_ABS-zuerst.php";
                $DD = preg_match('/<\?(?!php)/', file_get_contents($php_src));
                echo $DD;
                ---------
                Die Ausgabe war "0"
                Zum Test habe ich bei einem open-tag das "php" weg gemacht, dann war die Ausgabe wie erwartet "1".

                Ich scheine also schon richtig gesucht zu haben, das geht ja bei jedem Editor mit der Suchfunktion.

                Ich bin sehr ratlos, weil irgendwann die short-open-tags ja doch abgeschaltet werden.

                Ich hänge hier mal den Code der Seite an, vielleicht sieht dann jemand den Fehler.

                l-proli_ABS-zuerst.php

                Grüße, Hago
                Zuletzt geändert von hago; 23.01.2015, 19:16.

                Kommentar


                • #9
                  Falsche Datei
                  In der kommt kein ergi vor.

                  Also steckt der Fehler in irgendeiner der include Dateien.


                  Nachtrag:
                  Der Code tut mir in den Augen weh.
                  Zuletzt geändert von combie; 23.01.2015, 19:16.
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    Das ist schon die richtige Datei.
                    Aus den eregi_replace habe ich inzwischen preg_replace gemacht.

                    Die Include-Dateien habe ich natürlich auch schon durchsucht, mehrfach.
                    Da gibt es keine short-open-tags.

                    Hago

                    Kommentar


                    • #11
                      Such mal lieber nach einem Teil von dem, was dir angezeigt wird, z.b. [FONT="Courier New"]$s=eregi_replace('FL',[/FONT]

                      (Wenn du nach anderen Stellen des Codes, der auf der Seite angezeigt wird, suchst, dann kopiere ihn nicht direkt von der Seite, sondern aus der Quellcode-Ansicht im Browser – damit du sicher sein kannst, dass es sich auch exakt um die Ausgabe des Script handelt, und nicht um bereits vom Browser als HTML interpretiertes.)

                      Wenn das auch nichts bringt, dann würde ich mal – sofern vorhanden – in der Datenbank danach suchen; vielleicht legt das System dort auszuführenden Code ab.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Hallo,

                        eben habe ich mir den ausgegebenen Text nochmal angeschaut.

                        Da wird tatsächlich, obwohl die Änderung zu preg_replace schon mehrere Tage alt ist, immer noch eregi_replace ausgegeben.

                        Inzwischen habe ich den Rechner auch schon x-mal an- und ausgeschaltet und auch den Apache für die Änderung der php.ini aus- und angeschaltet.
                        Der Cache müsste doch geleert worden sein.

                        Langsam verstehe ich nichts mehr.

                        Jetzt versuche ich mal einen anderen Browser, der sicher nichts in einem Cache hat.

                        Kommentar


                        • #13
                          Zitat von hago Beitrag anzeigen
                          Das ist schon die richtige Datei.
                          Aus den eregi_replace habe ich inzwischen preg_replace gemacht.

                          Die Include-Dateien habe ich natürlich auch schon durchsucht, mehrfach.
                          Da gibt es keine short-open-tags.

                          Hago
                          Naja....
                          Wenn du und/mir nicht die Fehlerverursachende Datei zeigen möchtest, dann wird dir auch kaum zu helfen sein..

                          PS:
                          session_unregister() ist hoffnungslos veraltet


                          noch eregi_replace ausgegeben
                          Und wieder ein Stückchen näher am Fehler dran.... ;-)

                          Und der BrowserCache ist es nicht. session_start() sollte das zu verhindern wissen.
                          Zuletzt geändert von combie; 23.01.2015, 19:38.
                          Wir werden alle sterben

                          Kommentar


                          • #14
                            egal welcher Browser, immer die gleiche Ausgabe mit "eregi", aber da ist kein eregi in der Datei...

                            Hago

                            Kommentar


                            • #15
                              Zitat von combie Beitrag anzeigen
                              Wenn du und/mir nicht die Fehlerverursachende Datei zeigen möchtest...
                              Quatsch, warum sollte ich die denn nicht zeigen wollen.
                              Ich habe die Datei doch angehängt.
                              Das ist sie, mit Sicherheit, es gibt keine andere, mit der man sie verwechseln könnte.

                              Zu "session_unregister": mag schon veraltet sein, die Seite ist ja auch schon so einige Jahre alt.
                              Aber das macht ja sicherlich nicht den Fehler.

                              Kommentar

                              Lädt...
                              X