Werner: Wert ausgeben und weiterverarbeiten.

Hallo Leute,

ich bin ein PHP Novize und möchte testweise ein kleines Script schreiben, aber ich weiss nicht wie ich etwas realisieren kann. Leider fehlt mir auch der richtige programmiertechnische Ausdruck, damit ich es im Google richtig suchen kann.

Kann mir vielleicht bitte jemand von euch einen Tipp geben?

Ich erklär euch mal was ich machen möchte.

Über eine url http:/127.0.0.1/cgi-bin/auswertung?suche=Ichbineinwert

bekomme ich einen vordefinierten Wert zurück, den mir ein kleines SCript ausgibt.

Das ergebnis der Url (des Programms) z.b. "FREI" möchte ich einer Variable übergeben, damit ich dann mit if und else weiter bearbeiten kann.

Ich schaff es aber nur die URL als Variable zu übergeben, aber net den Wert zu übergeben nachdem die url aufgerufen wurde.

Kann mir bitte jemand einen Schubs in die richtige Richtung geben?

Dder mir bitte sagen, wie der Begriff für diese Wertübergabe heisst , damit ich im Google weitersuchen kann.

Danke für eure Mühe

Werner

  1. echo $begrüßung;

    Leider fehlt mir auch der richtige programmiertechnische Ausdruck, damit ich es im Google richtig suchen kann.

    "PHP Tutorial"
    "PHP Einführung"
    "PHP Kurs"

    echo "$verabschiedung $name";

    1. Hallo dedlfix,

      danke für die Info, aber das kann ich schon. :-)

      Ich meinte das, was Chris mir zu zeigen versucht.

      Danke für die Hilfe

      Werner

      echo $begrüßung;

      Leider fehlt mir auch der richtige programmiertechnische Ausdruck, damit ich es im Google richtig suchen kann.

      "PHP Tutorial"
      "PHP Einführung"
      "PHP Kurs"

      echo "$verabschiedung $name";

      1. hi,

        danke für die Info, aber das kann ich schon. :-)

        Ich meinte das, was Chris mir zu zeigen versucht.

        Dann versuche doch bitte das nächste mal deine Frage auch gleich so zu stellen, dass du von "Verfassen einer nachvollziehbaren Problembeschreibung" ebenfalls behaupten kannst, du könntest es.

        gruß,
        wahsaga

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

          Dann versuche doch bitte das nächste mal deine Frage auch gleich so zu stellen, dass du von "Verfassen einer nachvollziehbaren Problembeschreibung" ebenfalls behaupten kannst, du könntest es.

          Du hast völlig recht, das war der Haken daran, dass ich nicht wusste ich wie das "Werte ausführen lassen und ins Skript zurückbringen" net formulieren konnte. :-)

          Erlöste

          Grüsse

          Werner

  2. Hallo Werner,

    du willst ziemlich viel auf einmal für einen Neuling!

    Ich versuche mal zusammenzufassen, was ich verstanden habe:

    Du möchtest mittels eines eigenen Scriptes eine fremde URI aufrufen, die Dir ein in HTML verpacktes Ergebnis zurückliefert.

    Dieses Ergebnis möchtest Du aber nicht direkt am Browser ausgeben lassen, sondern in deinem eigenen Script verarbeiten.

    Dann probier erstmal folgendes aus:

    <?php
      error_reporting(E_ALL);

    $extern = 'http:/127.0.0.1/cgi-bin/auswertung?suche=Ichbineinwert'

    $fh = fopen($extern,'rb+');

    if($fh)
      {
        $daten = '';
        while(!eof($fh))
        {
          $daten .= fread($fh,128);
        }

    echo "<pre>\n";
        echo htmlentities($daten,ENT_QUOTES);
        echo "</pre>\n";

    fclose($fh);
      }
      else
      {
        echo "Pech gehabt...";
      }

    ?>

    Dieses Script versucht, die Ressource einzulesen und erstmal nur gleich wieder an den Browser weiterzuleiten als lesbare Textausgabe.

    Nach Erfolgsbericht geht es weiter.

    LG
    Chris

    1. Hallo Chris,

      vielen Dank für deinen Lösungsansatz, ich hab das mal ein gebaut.

      du willst ziemlich viel auf einmal für einen Neuling!

      das stimmt, aber ich versuch das schon seit ner kleinen Ewigkeit, aber find nix, was helfen könnte.

      Dein Script ist ja sehr interessant. Man kann also auch urls "öffnen" wie Dateien?

      Es kam nach dem Einbau folgende Fehlermeldung zustande:

      ...
      ): failed to open stream: HTTP wrapper does not support writeable connections.
      ...
      Pech gehabt...

      Gruss

      Werner

      1. Hallo Werner,

        Dein Script ist ja sehr interessant. Man kann also auch

        urls "öffnen" wie Dateien?

        Man kann sie einlesen, ähnlich einer Datei.
        Oft sind die "fopen-Wrapper" aber abgeschaltet in der PHP-Konfiguration der Request-Server. Der angefragte Server erfährt gar nichts davon, warum was mit ihm geschieht. Für den sieht das so aus, wie eine "normale" Anfrage über einen Browser.

        Es kam nach dem Einbau folgende Fehlermeldung zustande:

        ...
        ): failed to open stream: HTTP wrapper does not support writeable connections.
        ...
        Pech gehabt...

        Ja, wir haben versucht, die ressource auch zum Schreiben zu öffnen. das '+' von 'rb+' hat deinem PHP nicht geschmeckt.

        Hier hätte aber auch eine Fehlermeldung vom angefragten Server kommen können, wenn Dein PHP bereits schreibende fopen-Wrapper zulassen würde. MMn geht das ab PHP 4.3.9 (?).

        Also nimm das '+' raus.

        LG
        Chris

        1. Hallo Chris,

          Man kann sie einlesen, ähnlich einer Datei.

          Das is so genial, hab mir einen Wolf gesucht, wie ich das auswerten könnte.

          Oft sind die "fopen-Wrapper" aber abgeschaltet in der PHP-Konfiguration der Request-Server. Der angefragte Server erfährt gar nichts davon, warum was mit ihm geschieht. Für den sieht das so aus, wie eine "normale" Anfrage über einen Browser.

          Ein echt praktisches Feature!

          Ja, wir haben versucht, die ressource auch zum Schreiben zu öffnen. das '+' von 'rb+' hat deinem PHP nicht geschmeckt.

          Das habe ich dann im Manual gefunden, was das bedeutet und dementsprechend geändert.

          Hier hätte aber auch eine Fehlermeldung vom angefragten Server kommen können, wenn Dein PHP bereits schreibende fopen-Wrapper zulassen würde. MMn geht das ab PHP 4.3.9 (?).

          Ich hab das auf lesend umgestellt und dann hat der ohne Mucken die nötige Info geliefert die ich jetzt gut weiterverarbeiten kann.

          Dankende Grüsse

          Werner

          1. echo $begrüßung;

            Ein echt praktisches Feature!

            Was aber auch zu einer Sicherheitslücke führen kann, wenn man es nicht beachtet.
            Man will eine lokale Datei öffnen, und setzt den Dateinamen aus einem übergebenen Parameter 'param' zusammen. Nun könnte jemand daherkommen und statt "info", das beispielsweise im Normallfall zu "info.php" erweitert wird, um eine entsprechenden Datei zu laden, dass also jemand statt "info" "http://anderer.server/datei" mitsendet, und dabei unter dieser URL Code ausliefert, der brav von deinem Script abgearbeitet wird.

            Beispielcode:

            <?php  
            include $_GET['param'] . '.php';  
            ?>
            

            Abhilfe: $_GET['param'] vor Verwendung gegen eine Liste erlaubter Dateinamen prüfen.

            echo "$verabschiedung $name";

            1. Hallo dedlfix,

              Abhilfe: $_GET['param'] vor Verwendung gegen eine Liste erlaubter Dateinamen prüfen.

              Danke für die Info, es ist gut auch gleich am Anfang etwas von Sicherheit zu lernen, das alleinige Funktionieren von Skripten reicht ja leider nicht. :-/

              Das der Wert der überprüft werden soll per POST an die Url übertragen wird, hatte ich das mit $_POST['param'] gelöst.

              Danke für die Info! :-)

              Gruss

              Werner

      2. Hallo Chris,

        vielen Dank ich habe es dank dir geschafft. Nachdem ich dein Script verstanden habe, konnte ich auch den Rest verstehen und mir mit dem Manual den Rest zusammensuchen!

        Dass fopen auch für streams zu verwenden ist, hat mir geholfen!!! Vielen Dank!!!

        Vielen DANK!!!

        Gruss :-)

        Werner

        vielen Dank für deinen Lösungsansatz, ich hab das mal ein gebaut.

        du willst ziemlich viel auf einmal für einen Neuling!

        das stimmt, aber ich versuch das schon seit ner kleinen Ewigkeit, aber find nix, was helfen könnte.

        Dein Script ist ja sehr interessant. Man kann also auch urls "öffnen" wie Dateien?

        Es kam nach dem Einbau folgende Fehlermeldung zustande:

        ...
        ): failed to open stream: HTTP wrapper does not support writeable connections.
        ...
        Pech gehabt...

        Gruss

        Werner

        1. Hallo Werner,

          Dass fopen auch für streams zu verwenden ist, hat mir geholfen!!! Vielen Dank!!!

          Anderenfalls hätten wir, abhängig von Deiner Systemkonfiguration, auch noch einen Versuch mit fsockopen()
          http://de.php.net/manual/en/function.fsockopen.php
          wagen können :-)

          LG
          Chris

          1. Hallo Chris,

            Anderenfalls hätten wir, abhängig von Deiner Systemkonfiguration, auch noch einen Versuch mit fsockopen()
            http://de.php.net/manual/en/function.fsockopen.php
            wagen können :-)

            neee, neee das andere is verständlicher. Ich hab schon Probleme morgens 2 gleichfarbige Socken zu finden, da wäre sowas höchst verwirrend.

            :-)

            Dankende Grüsse

            Werner

            1. Hallo Werner,

              neee, neee das andere is verständlicher. Ich hab schon Probleme morgens 2 gleichfarbige Socken zu finden, da wäre sowas höchst verwirrend.

              Das muss aber nicht an der Sehfähigkeit oder mangelnder Intelligenz liegen *grins*

              Ich hatte auch mal eine Freundin, die mir ganz viele Socken gestrickt hat. Alle aus Restwolle. Da hatte keiner die Farbe eines anderen :-)

              LG
              Chris

              1. Hallo Chris,

                Das muss aber nicht an der Sehfähigkeit oder mangelnder Intelligenz liegen *grins*

                Ich hatte auch mal eine Freundin, die mir ganz viele Socken gestrickt hat. Alle aus Restwolle. Da hatte keiner die Farbe eines anderen :-)

                Sagen wir so MEINE Freundin strickt net. :-))

                Aber mittlerweile rede ich mir und anderen ein, dass ist mein "Branding" damit ich nen USP habe und aus der Crowd raussteche. xD :-)))) *

                *Missbräuchliche oder nichtverstandene Verwendung der "Words" inbegriffen. :-))

                Gruss

                Werner