Mailinglisten-Archive |
Moin, In einer eMail vom 05.01.01 01:55:32 (MEZ) Mitteleuropäische Zeit schreibt mfischer_(at)_josefine.ben.tuwien.ac.at: > Wenn ich mittels Session Daten eines Formulars von der > ersten Seite in die DB schreibe und zusaetzlich noch weitere > Formularseiten auszuwerten habe, welche Moeglichkeit hab ich, > wenn ich z.B. auf der letzten Seite bin und der Benutzer > abbrechen will, alle vorhergehenden INSERTs wieder Rueckgaengig > zu machen. Einmal abgesehen davon, das ich alle Variablen an die > Session binden kann und zum schluss auf einen Schlag ueberpruefe > und in die DB schreibe, reicht es aus jeweils in der Session > immer das connection und statement handle mitzureichen und > mittels dessein einfach die weiteren INSERTs zu machen ? Hm als mit Rollbacks hat das ersteinmal nichts zutun. Es ist egal ob ein- oder mehrstufig. Sobald das erste Formular vom Anwender abgeschickt wird muss du die Angaben ueberpruefen und nicht erst 3 Formulare später. Dies geschiet am geschicktesten in dem sich das Formular immer selber aufruft (Auch wenn es aus mehreren besteht.) Sollte der Anwender fehleingaben gemachte haben muss du ihm gleich abverlangen das er diese korregiert. Es ist hier dann auch vom Vorteil das du dein HTML Formular wiederverwenden kannst und auch gleich seine bislang eingebenen Werte aus dem HTTP_Post_Vars[] nehmen und eintragen kannst. Erst wenn er ein Teilformular richtig ausgefuellt hat gehst du bei un speicherst die Werte in der Session ab. Es empfielt sich hier alle Werte in einem Array zuspeichern und dieses in der Session abzulegen. Gleichzeitig musst du ein Token setzten damit deine Formularseite weiss im welchem Abschnitt es sich nun befindet. Erst ganze am Ende liest du das Array aus und erzeugst daraus deine Query und fuellst die Datenbank. Anschliessend ist das Token zuloeschen damit sich dein Formular im Ausgangszustand praaesentieren kann oder aber du verwendest das Token als Reloadsperre. Gruss Joerg Behrens ps: Im PHP Manual sind ein paar Beispiele zu Oracle drin un ein paar weitere Infos findest du in der FAQ der NG unter 15. Datenbanken: Oracle - http://www.koehntopp.de/php/faq-15.html Mit dem Abstraktionslayer der phplib kommt man auch ganz gut zurande besonders wenn man nur sekundär an Oracle ran muss. -- TakeNet GmbH Mobil: 0171/60 57 963 D-97080 Wuerzburg Tel: +49 931 903-2243 Alfred-Nobel-Straße 20 Fax:+49 931 903-3025
php::bar PHP Wiki - Listenarchive