Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular absenden, Query, Daten mitsenden

Einklappen

Neue Werbung 2019

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

  • Formular absenden, Query, Daten mitsenden

    Hallo,

    ich weiß nicht so genau nach was man suchen könnte. Vielleicht geht so etwas
    auch gar nicht, aber das kann ich mir fast nicht vorstellen.

    Ist es möglich ein Formular abzusenden, danach mit einer der Post Daten eine
    Abfrage zu starten und diesen Wert an den Post anzuhängen und
    neu zu versenden.

    Warum? Nun ich möchte ein Login eines CMSs umschreiben. Dort kann man
    sich standardmäßig mit Usernamen und Passwort anmelden. Nun hätte ich
    gerne die Anmeldung über die Emailadresse und Passwort. So dachte ich
    mir sende Emailadresse und Passwort, mache eine Datenbankabfrage über
    die Emailadresse (die einzig ist - klar, sonst problematisch), hole mir den
    Usernamen und sende das "Formular" mit den neuen Postdaten zum Login.
    Damit ich das Core nicht hacken muss, dachte ich eher an eine solche
    Lösung.

    Ist so etwas möglich?

    Grüße
    Tine

  • #2
    Ja ist möglich, die PEAR HTTP_Request-Klasse bietet das zum Beispiel an:
    http://pear.php.net/package/HTTP_Request/

    Ich würde aber eher den Login erweitern als so einen Wrapper vorzuschnallen oder wäre das zu aufwändig?

    Kommentar


    • #3
      Dankeschön, lese mich gerade ein da ich damit keine wirkliche Erfahrung habe.
      Da steht, dass PEAR in der Regel schon verfügbar ist, wenn PHP installiert ist.
      Weiterhin wird in den Beispielen immer eine Datei Datei eingebunden. Wie ist das
      nun zu verstehen, muss man die Datei zusätzlich einbinden und liefert PEAR serverseitig
      nur den Grundstock oder wie muss man sich das vorstellen?

      Sorry, aber so ganz ohne Erfahrung in diesem Bereich ist dieses mächtige "Tool" erst
      einmal ein Buch mit sieben Siegel. Keine Starthilfe wäre nett.

      Grüße
      Tine

      Kommentar


      • #4
        Du musst eigentlich nur die PEAR.php und HTTP/Request.php einbinden und eventuell den include_path um den von PEAR erweitern, zum Beispiel mittels
        PHP-Code:
        <?php
        set_include_path
        (get_include_path() . PATH_SEPARATOR '/pfad/zu/pear/');
        ?>
        Ein Verwendungsbeispiel findest du dann hier:
        http://pear.php.net/manual/en/packag...uest.intro.php
        Example 44-2. Fetching two website in a row

        In this example, two websites are fetched and displayed. To the first one a POST parameter is passed. The POST data stack is cleared before the second website is fetched.


        PHP-Code:
        <?php
        require_once "HTTP/Request.php";

        $req =& new HTTP_Request("http://www.php.net");
        $req->setMethod(HTTP_REQUEST_METHOD_POST);
        $req->addPostData("Foo""bar");
        if (!
        PEAR::isError($req->sendRequest())) {
             
        $response1 $req->getResponseBody();
        } else {
             
        $response1 "";
        }
             
        $req->setMethod(HTTP_REQUEST_METHOD_GET);
        $req->setURL("http://pear.php.net");
        $req->clearPostData();
        if (!
        PEAR::isError($req->sendRequest())) {
             
        $response2 $req->getResponseBody();
        } else {
             
        $response2 "";
        }

        echo 
        $response1;
        echo 
        $response2;
        ?>

        Kommentar


        • #5
          Vielleicht weiß ich nicht wo ich schauen muss, aber wie finde ich denn das Verzeichnis
          zur PEAR heraus? Wenn ich mir die php info ansehe finde ich gar keine Hinweise auf
          PEAR. Außer das das steht './configure' von without PEAR steht da nichts. Das Problem
          ist also nicht die Anwendung selbst, sondern ich bekomme es nicht geregelt die
          Dateien einzubinden. Wenn ich da etwas versuche bekomme ich so nette Warnings wie

          Fatal error: main() [function.require]: Failed opening required 'Net/Socket.php'

          Ich kann ja nicht mal mit Sicherheit sagen ob PEAR da überhaupt zur Verfügung steht.
          Wie findet man das raus? Wie kommt man zu Pfad? Ist die Request.php schon ein Teil
          des PEAR Pakets? Wenn nicht, wohin muss man das kopieren?

          Also derzeit läuft es nicht wirklich. Das Problem liegt im Grundverständnis zur
          PEAR. Wenn es erst einmal läuft kann man das Tutorial auch durcharbeiten, aber
          wenn man nicht versteht wie das aufgebaut ist, wirds schwierig. Im Tutorial etc. konnte
          ich darüber nicht wirklich etwas finden.

          Grüße
          Tine

          Kommentar


          • #6
            rausfinden kannst du es, glaub ich jedenfals, mit phpinfo().

            PHP-Code:
            <?php
            echo phpinfo();
            ?>
            [B]Mfg Tomtaz[/B]
            [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

            Kommentar


            • #7
              Hatte ich ja geschrieben, dass ich dort geschaut hatte. Dort gibt es nicht einen einzigen
              Eintrag in dem PEAR vorkommt. Heißt das, dass es kein PEAR gibt?

              Kommentar


              • #8
                Zitat von tinchen
                Hatte ich ja geschrieben, dass ich dort geschaut hatte. Dort gibt es nicht einen einzigen
                Eintrag in dem PEAR vorkommt. Heißt das, dass es kein PEAR gibt?
                Also ich hab nur wa mit pear im include_path drin stehen.

                Meine Phpinfo

                Ob es das ist, kann ich dir nicht sagen.
                [B]Mfg Tomtaz[/B]
                [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

                Kommentar


                • #9
                  Wie meinst du wo pear liegt? Das musst du schon selbst wissen Windows oder Linux-Maschine?

                  Notfalls zieh dir diese beiden Pakete:
                  http://pear.php.net/package/PEAR/download
                  http://pear.php.net/package/HTTP_Request/download
                  und entpacke sie dahin wo du es für sinnvoll hältst.
                  Es ist egal ob PEAR bei dir doppelt auf der Maschine liegt - letztlich ist PEAR nur ein Sammelsurium von in PHP-geschriebenen Klassen, also das gleiche was du auch so programmierst.

                  Dann musst du den pear/-Ordner zum include_path hinzufügen (wie, habe ich oben geschrieben) und kannst jetzt die HTTP_Request-Klasse mit
                  PHP-Code:
                  <?php
                  require_once 'HTTP/Request.php';
                  ?>
                  einbinden, denn bei jedem require(_once)/include(_once) werden die durch PATH_SEPARATOR im include_path vorhandenen Pfade vor die einzubindende Datei gesetzt, üblicherweise ist dies der aktuelle Pfad (deshalb steht im include_path ja auch der einzelne Punkt, der als Pfadangabe das aktuelle Verzeichnis symbolisiert).

                  Das heißt PHP modelt 'HTTP/Request.php' um in './HTTP/Request.php', die Datei wird es vermutlich nicht geben und dann nochmal in '/pfad/zu/pear/HTTP/Request.php'.
                  Letztere sollte existieren wenn du den include_path gesetzt und alle benötigten Pakete installiert hast.

                  Bei PEAR ist es sehr einfach von Klassen-Namen auf Speicher-Ort zu schließen. Basispfad ist natürlich der gewählte pear/-Ordner, danach ersetzt du im Klassennamen alle Unterstriche durch das Ordnertrennzeichen und hängst ein ".php" dran.

                  Klasse:
                  HTTP_Request

                  Pfad:
                  pear + "HTTP/Request" + ".php"


                  Ich kenne die Abhängigkeiten von HTTP_Request jetzt nicht so genau (manche Klassen benötigen andere aus dem PEAR-Framework), das heißt sollten Klassen nicht eingebunden werden können, die nicht PEAR.php oder HTTP_Request heißen, musst du die jeweilige Klasse hier
                  http://pear.php.net/packages.php
                  nachladen und genauso installieren, wie du es mit HTTP_Request getan hast.

                  Kommentar


                  • #10
                    Linux, PHP 4.4.6

                    Nun, ich habe nun das Skript von http://go-pear.org/ ausgeführt und die entsprechenden
                    Pakete installiert.

                    Wenn ich den Pfad mit
                    PHP-Code:
                    set_include_path('/srv/www/???????/html/pear' PATH_SEPARATOR get_include_path()); 
                    setze wir die Datei bzw. der Paket
                    PHP-Code:
                    require_once('HTTP/Request.php'); 
                    nicht gefunden.

                    Failed opening required 'HTTP/Request.php' (include_path='/srv/www/????????/html/pear:.:/usr/share/php')

                    Ich blick da gar nicht durch.

                    Kommentar

                    Lädt...
                    X