mixmastertobsi: Post übergeben

Hallo,

ich versuche verzweifelt über header Post-Variabeln zu übergeben.

Folgendes Szenario:
Ein PHP Script auf meinem Server soll Daten verarbeiten. Anschließend soll der User auf eine andere Seite weiter geleitet werden. Dabei sollen per POST variabeln übergeben werden.

per Header wäre die weiterleitung am eleggantesten...aber wie übermittle ich da noch POST VARIABELN

  1. Hi,

    ich versuche verzweifelt über header Post-Variabeln zu übergeben.

    nur gut, dass du dein Vorhaben nochmal ausführlicher beschreibst. Anhand dieses Satzes hätte ich keinen Schimmer gehabt, was du wirklich anstellen willst.

    Ein PHP Script auf meinem Server soll Daten verarbeiten. Anschließend soll der User auf eine andere Seite weiter geleitet werden. Dabei sollen per POST variabeln übergeben werden.

    Das geht nicht. Woher soll der Browser diese POST-Daten haben? Mach dir bitte klar, wie so eine "Weiterleitung", ein Redirect funktioniert:
    Der Client (Browser) schickt einen Request ab, idR als GET-Request, und wartet auf die Antwort. Der Server bearbeitet den Request, schickt als Antwort einen HTTP-Responseheader mit dem Status 301 oder 302 und der Angabe, wo die gewünschte Information stattdessen zu finden ist. Das Ziel der Weiterleitung fordert der Client nun in einem zweiten, ganz normalen GET-Request an.

    per Header wäre die weiterleitung am eleggantesten

    Nein. Elegant wäre aber vielleicht, die Daten in einer Session zu speichern, so dass sie dem Zielscript sie nach dem Redirect zur Verfügung stehen. Elegant wäre auch, gar keine Weiterleitung zu nutzen, sondern die Verarbeitung komplett in einem Script (und damit auch in einem Request-Response-Zyklus) zu machen.

    So long,
     Martin

    --
    Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
    Heißes Wasser kann man immer gebrauchen.
    1. Vielleicht gehe ich noch etwas ins Detail!

      wir betreiben einen Online-Shop. Der Kunde drückt auf bestellen. Das Formaular wird abgesandet und in einem Skript verarbeitet. Nun soll geprüft werden, ob der Kunde Vorkase oder Kreditkarte gewäht hat. Wenn Kreditkarte gewählt wurde, müssen die Daten (Name, Gesamtbetrag etc.) per POST  zu dem Payment-Anbieter gesandt werden.

      Ich hoffe, mein Problem ist klar und verständlich beschrieben.

      1. Mahlzeit mixmastertobsi,

        Das Formaular wird abgesandet und in einem Skript verarbeitet.

        Ich gehe mal davon aus (da Du das ja verschwiegen hast), dass es sich um ein PHP-Skript handelt ... falls nicht, musst Du Dich auf die Suche nach geeigneten Vorlagen für die von Dir verwendete Sprache machen.

        Wenn Kreditkarte gewählt wurde, müssen die Daten (Name, Gesamtbetrag etc.) per POST  zu dem Payment-Anbieter gesandt werden.

        Irgendwie erinnert mich das ansatzweise an einen anderen Thread ...

        Wenn Du Dir die Mühe machen würdest, die Forumssuche mit geeigneten Suchbegriffen zu füttern, hättest Du schon längst ein Ergebnis: http://forum.de.selfhtml.org/archiv/2009/2/t182775/

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo EKKi,

          Ich gehe mal davon aus (da Du das ja verschwiegen hast), dass es sich um ein PHP-Skript handelt

          er hat seine ursprüngliche Frage im Themenbereich PHP plaziert, das sollte Hinweis genug sein.

          Irgendwie erinnert mich das ansatzweise an einen anderen Thread ...

          Die Ähnlichkeit des Themas und der Beschreibung ist frappierend. Seltsam nur, dass der Thread schon im Archiv ist, obwohl er gerade erst von gestern nachmittag ist, also noch taufrisch.

          Ciao,
           Martin

          --
          Um die Wahrheit zu erfahren, muss man den Menschen widersprechen.
            (George Bernhard Shaw)
          1. Hallöle!

            Die Ähnlichkeit des Themas und der Beschreibung ist frappierend. Seltsam nur, dass der Thread schon im Archiv ist, obwohl er gerade erst von gestern nachmittag ist, also noch taufrisch.

            Das liegt daran, dass ich auch nicht immer allen alles kommuniziere, was ich kommunizieren müßte - EKKi habe ich geschrieben, den Moderatoren nicht, Schande über mich! Der OP des archivierten Threads hatte um Löschung gebeten, weil er seine Mailadresse angegeben hat und nun nicht wollte, dass die zugespamt wird. Ich hab's dann halt archiviert, dabei wird die Mailadresse dann ja gelöscht.

            File Griese,

            Stonie

            --
            It's no good you trying to sit on the fence
            And hope that the trouble will pass
            'Cause sitting on fences can make you a pain in the ass.
            Und im Übrigen kennt auch Stonie Wayne.
            1. Mahlzeit Stonie,

              EKKi habe ich geschrieben,

              Oha ... Tatsache - Post von Stonie! (Ich sollte meinen "vermutlich Spam"-Ordner ab und zu auch mal durchsehen ...)

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Moinsen,

                Oha ... Tatsache - Post von Stonie! (Ich sollte meinen "vermutlich Spam"-Ordner ab und zu auch mal durchsehen ...)

                *hehehehe* Jaja, das kommt schon mal vor, im Gedränge. Du bist auch nicht der erste, dem das passiert... ;o)

                File Griese,

                Stonie

                --
                It's no good you trying to sit on the fence
                And hope that the trouble will pass
                'Cause sitting on fences can make you a pain in the ass.
                Und im Übrigen kennt auch Stonie Wayne.
      2. Hi,

        Vielleicht gehe ich noch etwas ins Detail!

        das erweist sich als notwendig. :-)

        wir betreiben einen Online-Shop. Der Kunde drückt auf bestellen. Das Formaular wird abgesandet und in einem Skript verarbeitet. Nun soll geprüft werden, ob der Kunde Vorkase oder Kreditkarte gewäht hat. Wenn Kreditkarte gewählt wurde, müssen die Daten (Name, Gesamtbetrag etc.) per POST  zu dem Payment-Anbieter gesandt werden.

        So, also an einen Fremdserver. Dann ist natürlich mit Sessions nichts zu machen.

        Ich sehe zwei Möglichkeiten.

        1. Setzt euch mit dem "Payment-Anbieter" in Verbindung und fragt, ob es nicht eine einfache Rohdaten-Schnittstelle (nicht HTML) gibt, mit der man a) die Zahlungsdaten übermitteln und b) das Ergebnis abrufen kann (also ob die Zahlung wirklich in Ordnung ist oder nicht). Möglicherweise hat der Anbieter schon eine derartige Schnittstelle.
        Die Client-Seite dieser Schnittstelle müsstet ihr in eurem Shop-Script implementieren.

        2. Falls 1. nicht geht, müsstet ihr von eurem Shop-Script einen regulären HTTP-POST-Request an den Payment-Anbieter absetzen, das zurückkommende HTML parsen und die Ergebnisdaten da rausfischen. Vom Prinzip her ist diese Lösung der erstgenannten ähnlich, nur dass das Response-Format HTML ist und für den aktuellen Zweck viel "Ballast" enthält (den der Anbieter auch noch jederzeit ändern könnte).

        In jedem Fall halte ich es für eine schlechte Idee, den Kunden mit einem Redirect weiterzureichen, denn dann ist er erstmal "weg" von eurer Site. Das wäre nicht schön; eleganter ist es doch in jedem Fall, wenn direkt im Shop als letzter Schritt angezeigt wird: Vielen Dank, wir haben Ihre Zahlung erhalten.

        Ciao,
         Martin

        --
        In Ägypten haben früher 150000 Leute 35 Jahre lang an einer Pyramide gearbeitet. Aber bei uns arbeiten doppelt so viele Leute doppelt so lange allein an der Baugenehmigung.
          (Dieter Nuhr, deutscher Kabarettist)
      3. Hallo!

        wir betreiben einen Online-Shop. Der Kunde drückt auf bestellen. Das Formaular wird abgesandet und in einem Skript verarbeitet. Nun soll geprüft werden, ob der Kunde Vorkase oder Kreditkarte gewäht hat. Wenn Kreditkarte gewählt wurde, müssen die Daten (Name, Gesamtbetrag etc.) per POST  zu dem Payment-Anbieter gesandt werden.

        Dazu wird der Payment-Anbieter Dir eine Schnittstelle anbieten (müssen) - wie sieht diese aus?

        Ciao

        GG

        --
        "If I do not seek to understand what is happening here
        - then I've got peanuts in my head!"
        (I. Hosein)
    2. hi,

      per Header wäre die weiterleitung am eleggantesten

      Nein. [..]

      Ja.

      Elegant wäre aber vielleicht, die Daten in einer Session zu speichern,

      Ja.

      Oder: Die weniger wichtigen Daten in der Redirected-URL unterbringen.

      if($_POST['signin'] || $_POST['nick']){
      header("Location: $url?metadaten=kiss+me");
      }

      Horst Pfiffig

      --
      Mit drei efff.