globe: Anfaengerfrage

Beitrag lesen

n'abend,

Geht wunderbar mit PHP, aber eine Sache stoert mich an der PHP-Loesung, naemlich dass ich es nicht schaffe an die Daten der Formulare zu kommen die im Formulare waren im Schritt i - 1 (ausser ich sichere es in der Session!).

Du könntest beim Absenden des Formulars auch einfach nochmal lesend auf die Datenbank zugreifen, um Unterschiede zwischen den DB-Daten und den Formulareingaben zu ermitteln.

Weniger sicher und weniger toll könntest für jedes Eingabefeld im Formular noch ein hidden-Field mit dem Ursprungswert hinzufügen. Verursacht mehr Traffic und ist in sofern unsicher, als dass versteckte Eingabefelder von "findigen" Surfern ohne Probleme verändert werden können.

Also:
i: lade Daten in Formular
i + 1: speicher Daten in Formular
       -> Daten gehen in POST-Daten an PHP-Script, Daten von Schritt i (geladene Daten) gehen beim Klick auf Button logischerweise verloren, liegt an der Natur von PHP.

Bis du auf den Submit-Button des Formulars geklickt hast, ist das PHP-Script vermutlich schon 10x fertig. Das Script "lebt" nur so lange, wie es braucht um dein Formular zu erstellen (wenn es nicht noch gerade etwas anderes machen soll). Die Zeit zwischen "Formular wird angezeigt" und "Formular wird abgeschickt" hat der Server (und somit auch PHP) nichts mehr mit dir zu tun (außer du hast da ganz tolles Putzmittel™ im Einsatz).

Ich wurde aber gerne die gesendeten Daten mit den geladenen vergleichen, serverseitig (ja, wuerde mit PHP Session gehen, ich weiss, aber ich suche nach einer Alternative).

Ich würde - wäre ich an deiner Stelle - vermutlich bei "i+1" erneut lesend auf die Datenbank zugreifen. Gehampel mit Sessions, oder gar temporären Dateien macht nur dann sinn, wenn die Datenbankabfrage _extrem_ aufwändig ist.

Wie is das mit Java Server Pages, ist das auch so zustandlos wie HTTP/PHP oder is da was eingebaut dass das nicht verloren geht?

Du willst erkennen, dass Java eine Programmiersprache ist. Das ist PHP auf eine gewisse Art und weise auch. HTTP ist das sicher nicht. HTTP ist ein Protokoll (Hyper Text Transfer Protocol). HTTP ist eine definierte Art und Weise, wie zwei Gesprächspartner (Browser, Server) zu kommunizieren haben.

Du wirst auch mit Java das Problem haben, dass du Daten in einer Session speichern musst, um diese über verschiedene von einander unabhängige HTTP Anfragen hinweg verfügbar zu haben. Das kann sich in Java zwar etwas anders gestalten als in PHP, das Prinzip ist jedoch das gleiche.

weiterhin schönen abend...

--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|