Ankündigung

Einklappen
Keine Ankündigung bisher.

keine Cookie-Auslese bei Seitenausgabe per file_get_contents

Einklappen

Neue Werbung 2019

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

  • keine Cookie-Auslese bei Seitenausgabe per file_get_contents

    Hallo,

    ich habe ein PHP-Script geschrieben, bei dem ich eine (eigentlich geparste) PHP-Seite mit file_get_contents() in einen String lade und dann per echo wieder ausgebe.

    Nun habe ich aber das Problem, dass die gesamten Cookiedaten nicht ausgelesen werden, obwohl ich mir sicher bin, dass diese gesetzt sind, da ich sie mit dem Pfad '/' gesetzt habe.

    Wenn ich die Seiten direkt per URL aufrufe, funktioniert alles tadellos, nur file_get_contents macht Probleme.

    Ich verstehe das nicht, da die auszugebende Seite doch vor dem Einlesen mit file_get_contents schon vom PHP-Server geparst wird, oder liege ich da falsch? Sie wird ansonsten zumindest richtig angezeigt.

    Habt Ihr einen Tip, was ich falsch mache, wie ich die Cookies auslesen kann?

    Vielen Dank im Voraus für Eure raschen Antworten.
    MfG
    KuShi


  • #2
    Re: keine Cookie-Auslese bei Seitenausgabe per file_get_cont

    Willkommen hier im Forum!

    Zitat von KuShi
    Ich verstehe das nicht, da die auszugebende Seite doch vor dem Einlesen mit file_get_contents schon vom PHP-Server geparst wird, oder liege ich da falsch? Sie wird ansonsten zumindest richtig angezeigt.
    Nur, wenn du statt eines Dateipfades einen Webpfad verwendest (also http://..)
    Statt "echo file_get_contents()" kannst (solltest) du aber auch "include" oder "require" verwenden, wenn du möchtest, dass der Inhalt geparsed wird.

    Kommentar


    • #3
      Danke für die schnelle Antwort.

      Ja, ich verwende Webpfade für file_get_contents(), sonst würde mir ja der PHP-Code angezeigt werden und nicht die HTML-Seite.

      Die Anzeige funktioniert auch ganz gut, nur das Cookies - Auslesen ned.

      Wie soll ich das mit include machen?
      nach file_get_contents() ist die Seite doch in einem String gespeichert.

      Ich benutze deshalb nicht direct include, sondern file_get_contents, damit ich vor der Übertragung an den Browser die HTML-Seite noch bearbeiten kann, z.B. per preg_replace. Deswegen der komplizierte Umweg.

      Als Beispiel:
      originale News-Seite: http://www.ragnarok-online-2.de/hp/artikel/news.php
      per file_get_contents: http://www.ragnarok-online-2.de/?page=news

      (Die Grafiken und Stylesheets werden natürlich nicht richtig angezeigt, da die Pfade ja ned stimmen)

      Es handelt sich dabei um das Login-Feld links oben.
      Wenn ich mich im Forum anmelde, wird ein Cookie gespeichert, der auf der Homepage ausgelesen wird, wodurch sich das Login-Feld in ein User-Panel ändert, in dem einige Userspezifische Daten stehen. Nach dem Einloggen erscheint auf der originalen Seite das User-Panel richtig. auf der Seite, die per file_get_contents ausgegeben wird, bleibt es jedoch beim Login-Feld. Die Quellcodes sind natürlich die selben, da nur eine header.php existiert, die für die Ausgabe der Links und Headerinformationen auf allen Seiten sorgt.

      Kommentar


      • #4
        Ist doch logisch, es handelt sich ja schließlich um einen unabhängigen Request, den du mit file_get_contents(http://..) anforderst.

        Vielleicht helfen dir ja trotzdem "include" und die Output-Buffering Funktionen.
        http://de.php.net/outcontrol
        Speziell ob_start(), ob_get_contents(), ob_end_clean().

        Kommentar


        • #5
          Ah stimmt, daran hab ich ja gar ned gedacht, mist.
          Die Cookies sind ja suf dem Client-PC und file_get_contents() ist serverseitig.

          Danke für den Hinweis.

          Werde mir Deine Links mal ansehen, thx.

          Kommentar

          Lädt...
          X