php-Code wird ausgegeben

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Attached Files

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

    Comment


    • #3
      Hallo,

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


      Hago

      Comment


      • #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

        Comment


        • #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

          Comment


          • #6
            Originally posted by hago View Post
            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.

            Comment


            • #7
              Originally posted by hago View Post
              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)); 
              Last edited by fireweasel; 20-01-2015, 19:58. Reason: typo
              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

              Comment


              • #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
                Last edited by hago; 23-01-2015, 18:16.

                Comment


                • #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.
                  Last edited by combie; 23-01-2015, 18:16.
                  Wir werden alle sterben

                  Comment


                  • #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

                    Comment


                    • #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.

                      Comment


                      • #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.

                        Comment


                        • #13
                          Originally posted by hago View Post
                          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.
                          Last edited by combie; 23-01-2015, 18:38.
                          Wir werden alle sterben

                          Comment


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

                            Hago

                            Comment


                            • #15
                              Originally posted by combie View Post
                              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.

                              Comment

                              Working...
                              X