Patrick: Dateiinhalt in Variable verschicken

Hallo zusammen,

ich habe ein PHP-Script (CMS-System) was einen Datei-Inhalt per Variable erwartet (stripslashes($HTTP_POST_VARS['textarea_name']). An dem CMS-Editor kann ich nichts ändern!

Jetzt will ich per Link den Pfad der zu ändernden Datei an ein Hilfsscript geben:

<a href="http://..readfile.php?pfad=/content/inhalt.html">

Dieses Script soll die gesamte Datei in eine Variable laden _und_ diese Variable an das CMS-System übergeben.

Bis zum auslesen der Datei über den übergebenen Pfad komme ich, aber das abschicken bekomme ich nicht hin. Nach der Suche hier im Forum wäre die einzige Möglichkeit bis jetzt folgende:

  • Datei auslesen
  • Inhalt in Variable lesen
  • Variable mit einem Formular verknüpfen
  • und das Formular dann automatisch an den Editor verschicken.

Aber das ist doch keine saubere Lösung, oder?

Gruß Patrick

  1. Hi,

    [...]

    • Variable mit einem Formular verknüpfen
    • und das Formular dann automatisch an den Editor verschicken.

    Aber das ist doch keine saubere Lösung, oder?

    nein - du brauchst kein Formular zu bauen. Du kannst mittels fsockopen() (http://www.php.net/manual/en/function.fsockopen.php) eine Socket-Verbindung zum Server herstellen und einen POST-Request simulieren. Ein Beispiel findest du hier: http://www.dclp-faq.de/q/q-code-post.html.

    Gruß,
    Andreas.

    1. Danke,

      aber das sendet doch einfach nur die Daten, oder? Ich müsste dann schon auf die Seite kommen, da die aus der Datei übergebenen Daten auf der Editor.php Seite in eine textarea geschrieben werden sollen, und dann kann ich eben die Daten bearbeiten.

      gruß Patrick

      1. Hi,

        aber das sendet doch einfach nur die Daten, oder?

        nein, nicht nur.

        Ich müsste dann schon auf die Seite kommen, da die aus der Datei übergebenen Daten auf der Editor.php Seite in eine textarea geschrieben werden sollen, und dann kann ich eben die Daten bearbeiten.

        du kommst nicht auf die Seite (im Sinne einer Weiterleitung), sondern die Funktion PostToHost() gibt dir durch die Zeilen

        while(!feof($fp)) {
            $res .= fgets($fp, 128);
        }

        respektive

        return $res;

        alle Daten zurück, die der Server nach dem POST-Request zurücksendet. Das ist eine komplette HTML-Datei incl. aller Header.

        Nimm dir einfach mal die Funktion und schreib darunter etwas in der Art:

        $result = PostToHost('host', '/pfad_zum_formular', '', 'parameter=wert');
        echo $result;

        wenn die Datei mit dem Formular also z.B. formular.html heißt und im Document-Root des lokalen Webservers liegt:

        $result = PostToHost('localhost', '/formular.html', '', 'textarea_name=test');
        echo $result;

        oder so ähnlich. Dann solltest du die ganzen Daten, incl. des eigentlichen Formulars, ausgegeben bekommen. Um dann nur die Datei auszugeben, musst du lediglich die Header-Daten wegschneiden.

        Gruß,
        Andreas.

        1. ok danke!

          grüße vom bodensee