Ingo Siemon: Ausgabe mit PHP

Hallo

Ich habe ein Script (nit PHP), welches mir einen bestimmten Wert
ausgibt, wenn ich folgendes in die Adresszeile des Browsers eingebe:

http://example.org/script.cgiaction=ausgabe&url=http://example.org/muster.foo

Nun würde ich den ausgegebenen Wert gerne auf einer Weseite anzeigen.
Und das würde ich gerne mit PHP machen.
Aber irgendwie weiss ich nicht, wie ich das machen kann.

Folgendes funktioniert nicht:

<?php  
  echo http://example.org/script.cgiaction=ausgabe&url=http://example.org/muster.foo;  
?>

Könntet Ihr mir da auf die Sprünge helfen,
da ich nur wenige Kenntnisse in PHP habe.
Womit muss ich mich beschäftigen, um auf die Lösung
meines Anliegens zu kommen?

Ist das denn überhaupt möglich, so wie ich mir das denke?

Gruß
Ingo

  1. Hi Ingo,

    Womit muss ich mich beschäftigen, um auf die Lösung
    meines Anliegens zu kommen?

    Du musst dich damit beschäftigen, wie du an externe Ressourcen z.B. über HTTP dran kommst. Wenn bei deinem PHP allow_url_fopen auf on gesetzt ist, geht das ganz einfach mit file_get_contents() oder mit fopen() und fread().

    Wenn allow_url_fopen nicht auf on gesetzt ist, kannst du es mit fsockopen() versuchen (etwas komplizierter) oder es mit dem PEAR Package HTTP_Client, welches dir fertige Funktionen zum Abruf der URL zur Verfügung stellt, einfach mal in die Doku dazu schauen.

    MfG, Dennis.

    1. Lieber Dennis

      Du musst dich damit beschäftigen, wie du an externe Ressourcen z.B. über HTTP dran kommst.

      OK, vielen lieben Dank erstmal für Deine schnelle Hilfe.
      Ich bin aber nicht ganz sicher, ob ich mich vielleicht
      falsch ausgedrückt habe.

      Diese Ressource, die ich auf meiner Seite mittels PHP anzeigen möchte,
      ist im Grunde nicht extern, weil sie ebenfalls zu meiner
      Seite gehört.

      Also eher so:
      http://spaceart.de/script.baz?action=ausgabe&url=http://spaceart.de/muster.foo

      Und ausgegeben werden soll dieser Wert dann eben z.B. auf:
      http://spaceart.de/trallalla.php

      Gruß
      Ingo

      1. Hi Ingo,

        Diese Ressource, die ich auf meiner Seite mittels PHP anzeigen möchte,
        ist im Grunde nicht extern, weil sie ebenfalls zu meiner
        Seite gehört.

        Also eher so:
        http://spaceart.de/script.baz?action=ausgabe&url=http://spaceart.de/muster.foo

        Und ausgegeben werden soll dieser Wert dann eben z.B. auf:
        http://spaceart.de/trallalla.php

        Auch in diesem Fall kannst du es genauso machen - dann fordert dein PHP-Script trallalla.php die Ausgabe von der ersten URI an und du kannst sie verwenden.

        Die Frage ist nur, warum du dann nicht einfahc den PHP-Code aus script.baz (was ja wohl auch PHP ist) in die trallalla.php kopierst oder script.baz nicht einfach mit include() in trallalla.php einbindest - eine dieser Lösungen wäre der obigen Lösung zu bevorzugen, weil kein HTTP Request abgesetzt werden muss und das dadurch performanter ist.

        MfG, Dennis.

        1. Lieber Dennis

          Auch in diesem Fall kannst du es genauso machen - dann fordert dein PHP-Script trallalla.php die Ausgabe von der ersten URI an und du kannst sie verwenden.

          OK, dann werde ich mal sehen, ob ich das hinbekomme.

          Die Frage ist nur, warum du dann nicht einfahc den PHP-Code aus script.baz (was ja wohl auch PHP ist) in die trallalla.php kopierst oder script.baz nicht einfach mit include() in trallalla.php einbindest ...

          Das script.baz ist eben nicht PHP.
          Da hatte ich mich in meinem ersten Posting vertippt ("nit" statt "nicht")
          Und es macht auch noch viel mehr, als nur diese Ausgabe.

          Gruß
          Ingo

          1. Hi Ingo,

            Das script.baz ist eben nicht PHP.

            Nun, dann sieht das natürlich anders aus - dann fallen die Include-Möglichkeiten natürlich flach. Wenn PHP bei dir als Apache-Modul läuft kannst du mal probieren die Funktion virtual() zu verwenden, andernfalls bleiben dir nur die von mir im ersten Posting genannten Möglichkeiten (welche aber Traffic erzeugen, nur so am Rande bemerkt).

            MfG, Dennis.

            1. Lieber Dennis

              Nun, dann sieht das natürlich anders aus - dann fallen die Include-Möglichkeiten natürlich flach. Wenn PHP bei dir als Apache-Modul läuft kannst du mal probieren die Funktion virtual() zu verwenden, andernfalls bleiben dir nur die von mir im ersten Posting genannten Möglichkeiten (welche aber Traffic erzeugen, nur so am Rande bemerkt).

              Ich habe es nun gelöst.
              Vielen Dank für Deine nette Hilfe.

              Gruß
              Ingo

  2. hi,

    Nun würde ich den ausgegebenen Wert gerne auf einer Weseite anzeigen.
    Und das würde ich gerne mit PHP machen.
    Aber irgendwie weiss ich nicht, wie ich das machen kann.

    Du benutzt also GET als Methode zur Parameterübergabe.

    http://tut.php-q.net/get.html
    http://www.php-faq.de/ch/ch-webvariablen.html
    http://www.php.net/manual/de/language.variables.predefined.php

    Und denke auch daran, den Wert vor der Ausgabe so zu behandeln, dass kein Einschleusen von Code in deine Seite darüber möglich ist, Stichwort Cross-Site Scripting.

    Die Anwednung von htmlspecialchars() auf den Wert vor der Ausgabe dürfte dafür in so einem Falle idR. ausreichen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo

      Das Script, welches diesen Wert ausgibt ist kein PHP-Script.
      Ich hatte mich da im ersten Posting vertippt ("nit" statt "nicht").

      Und ich hatte mein Anliegen auch etas fehlerhaft formuliert.
      Die richtige Formulierung habe ich schon nachgereicht.

      Gruß
      Ingo