Übergeben von POST-Daten von einer Webseite zu einer anderen mit PHP

7

Das Suchen fand keine ähnliche Frage, also: Wie können POST-Daten, die von PHP verwendet werden, um eine Seite zu generieren, von dieser Seite an eine andere PHP-generierte Seite weitergegeben werden? Ich habe:

  • Ein Formular auf Seite 1, das Daten per POST an ein PHP-Skript sendet.
  • Seite 2 wird von diesem Skript generiert und zeigt ein oder mehrere Diagramme an, die von einem externen Programm unter Verwendung der Einträge auf Seite 1 und der Backend-Datenbank generiert wurden. Diese Seite hat auch ein anderes Formular mit Optionen, um die Graphen mit neuen Optionen neu zu generieren (z. B. Vergrößern oder Verkleinern der Graphen).
  • Falls gewünscht, wird Seite 3 mit dem gleichen PHP-Skript unter Verwendung von POST-Daten erzeugt, die auf den Seiten 1 und 2 zusammengeklebt sind. Abgesehen von den Graphen entspricht das grundlegende Erscheinungsbild dem auf Seite 2.
  • Die Seiten 4, 5, 6 ... sollten auf die gleiche Weise wie Seite 3 generiert werden.

Also, wie kann ich die POST-Daten, die zur Erzeugung von Seite 2 verwendet werden, in die POST-Daten für Seite 3 einfügen?

BEARBEITEN: Aufgrund von organisatorischen Richtlinien können Cookies nicht verwendet werden (Sitzungen sind nicht möglich). GET ist unerwünscht, da die Eingabe nicht in der URL angezeigt werden soll.

    
PTBNL 24.03.2009, 23:40
quelle

5 Antworten

13

Ich erinnere mich, dass ich vor langer Zeit mit diesem Problem zu kämpfen hatte und mich fragte, warum ich einfach nicht mit einem modifizierten POST-Header umleiten konnte. Der Grund ist, dass eine Weiterleitung tatsächlich als GET betrachtet wird.

Unabhängig davon müssen Sie die Post-Variablen in versteckten Feldern speichern.

%Vor%

Ich würde empfehlen, alle Ihre Feldnamen aus jedem Formular voranzuzählen, damit sie am Ende während Ihrer Konsolidierungsphase leicht voneinander getrennt werden können.

%Vor%

Bearbeiten: Wie andere bereits erwähnt haben, ist die Persistenz von Daten mithilfe von Sitzungen eine Möglichkeit, aber dies wird zu einer sehr komplexen Angelegenheit des Beibehaltens eines temporären Zustands, bei dem Dinge wie Seitenaktualisierung oder die Verwendung der Zurück-Schaltfläche schwierig zu verwalten sind. Wenn Sie nicht mit einem Extremfall konfrontiert sind, ist es viel einfacher, Daten mithilfe von Feldern persistent zu machen, da sie Aktualisierungen und anderes Browserverhalten viel einfacher überleben.

    
Soviut 24.03.2009, 23:42
quelle
2

Verwenden Sie GET.

Meiner Meinung nach sollten POST-Anfragen etwas modifizieren (z. B. Hinzufügen von Datensätzen zu einer Datenbank). GET-Anforderungen sollten etwas abrufen (z. B. Ergebnisse einer Suchanfrage).

Wenn Sie POST trotzdem benutzen wollen, schauen Sie sich PHP Sessions an.

    
strager 24.03.2009 23:42
quelle
2

Sitzungen sind ein Schmerz, und wenn Sie sie brauchten, hätten Sie sie bereits implementiert.

Wie @Soviut oben gesagt hat, sind versteckte Eingabefelder wahrscheinlich der Weg dafür.

    
ℳ  . 24.03.2009 23:51
quelle
2

Wez Furlong schrieb kürzlich die php5-Version in seinem Blog (mit dem Titel HTTP post from php, ohne cURL):

%Vor%

In der Post erwähnt er, dass er immer nachsehen muss, wie er das macht. Komisch, weil er einer der Kernentwickler ist!

    
John 27.03.2009 03:44
quelle
0

Wenn Sie sich entscheiden, die Session-Route mit der dbms-Option abzubeißen, hatte ich Glück, eine State-Klasse zu entwerfen, um diese Dinge zu speichern und ein Objekt mit JSON zu einem einzigen großen Feld im Session-Record zu serialisieren.

>     
dkretz 25.03.2009 00:05
quelle

Tags und Links