![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Benutzer Registriert seit: 25.02.2006
Beiträge: 54
|
Hi, ich bin momentan dabei eine Bestellabwicklung mit php zu erstellen. Dabei kommt ja immer wieder das Problem auf, dass jemand auf den zurück Button (des Browsers) klickt und dann das Error des Browsers angezeigt wird, dass Formulardaten versendet wurden etc. und man ggf. aus aktualisieren klicken soll. Wie geht Ihr mit dem Problem um? Das die Daten wiederholt gesendet werden etc. Java(-Script) will ich eigentlich nicht einsetzen. Zum einen, da ich mich hier nicht auskenne und zum anderen, wenn jemand Java ausgeschaltet hat bringt mich das auch nicht weiter. Würde mich über Tipps & Anregungen freuen! Viele Grüße julien |
| | |
| | Nach oben #2 | |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.642
| Zitat:
Da du für deine Bestellung sicherlich ein paar Daten in der Session speicherst, solltest du vielleicht auch speichern, bis wohin er gekommen ist. Sprich User A ist bei Schritt 3 der Bestellung, macht einen Schritt im Browser zurück und sendet Daten für Schritt 2 nochmal. Ergo müsstest du das erkennen und die neugesendeten Daten verwerfen. Solltest du in deiner Bestellung die Möglichkeit geben, gewisse Daten in bestimmten Schritten nochmals zu verändern (User hat sich bei Adresse verschrieben und will das korrigieren) so müsstest du dann vielleicht mit Flags (also Markierungen) arbeiten. Z.B. hat der User den letzten Schritt erreicht und will nun daten ändern von Schritt 2, so wird das Formular aus schritt 2 angezeigt und ein hidden-Inputfeld namens "korrigierteDaten" (beispielname nur Kompliziert erklärt aber ich hoffe du verstehst es
__________________ I did it my way - Senseless-Blog | |
| | |
| | Nach oben #3 |
| Neuer Benutzer Registriert seit: 23.05.2006 Ort: Meerbusch
Beiträge: 15
|
Hi! Nachdem die Bestellung ausgelöst wurde, könntest Du die Daten der Bestellung / den Inhalt des Warenkorbs aus der Session entfernen. Das Skript, in dem die Bestellung ausgelöst wird, kann dann bei nicht vorhandenen Bestelldaten entsprechend reagieren und den User über die bereits ausgeführte Bestellung informieren. Wenn Du diese Daten auch nach ausgelöster Bestellung benötigst (beispielsweise für "Das haben andere auch gekauft" Informationen), kannst Du nach ausgelöster Bestellung ein Flag in der Session setzen. Dieses Flag kannst Du dann beim Aufruf der Seite, über die der eigentliche Bestellvorgang initiiert wird (beispielsweise die Ansicht des Warenkorbs), zurücksetzen. Somit hättest Du einen sauberen Schnitt zwischen den Bestellungen und stellst sicher, dass der Nutzer erst wieder den Warenkorb ansehen muss um den Bestellvorgang erneut durchzuführen. Nebenbei kannst Du Daten des Benutzer in der Session halten um bei einer Folgebestellung innerhalb der gleichen Sitzung die Lieferanschrift etc. bereits parat zu haben. |
| | |
| | Nach oben #4 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Gesetz den Fall der Bestellvorgang ist fertig und man leitet zu einer Erfolgsmeldung Seite weiter mit header() weiter. Wie würdet ihr das anlegen? Derzeit mache ich es so das ich mit header so weiterleite header(Location: orderfinished.php?msg=1) Anhand von $_GET['msg'] wird dann die dazugehörige nachricht ausgegeben. Allerdings hat die Methode den Nachteil das man orderfinished.php?msg=1 auch direkt aufrufen kann obwohl man gar keine Bestellung erstellt hat. Außerdem lassen sich damit alle von mir hinterlegten Statusmeldungen auslesen. Jedoch kann nichts zerstört die Datei ja nur anhand einer ID die passende nachricht lädt und keine Daten verändert. Was haltet ihr davon? Ich glaub der PEAR Bugtracker arbeitet nach der selben Methode. |
| | |
| | Nach oben #5 |
| Erfahrener Benutzer Registriert seit: 31.12.2006 Ort: Zürich
Beiträge: 298
|
Du kannst die MsgId ja in die Session schreiben (also $_SESSION['msg']). Das kann nicht manipuliert werden.
__________________ . <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination. |
| | |
| | Nach oben #6 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
| Die Adresse sollte eine absolute URI sein (siehe RFC 2616 Abs. 14.30). Die Session-ID muss hier ggf. manuell angehängt werden. Ich arbeite mit der hier geschilderten Methode, derartige Meldungen in die Session zu legen und die ID als Get-Parameter anzuhängen. Nach dem Abfragen der Meldung wird diese aus der Session gelöscht. Ist ein ausreichender Schutz vor missverständlichen Meldungen und Täuschungen. Basti |
| | |
| | Nach oben #7 | |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
| Zitat:
| |
| | |
| | Nach oben #8 | ||
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
| Zitat:
Mit diesem hilfreichen Kommentar melde ich mich mal für die nächsten 4 Wochen hier ab (Jugenarbeit in der Wildnis). Wünsche eine schöne Zeit vor den Monitoren und an den Feierabenden *g Basti | ||
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| JTabbedPane und Button Events | TheSentinel | Desktop-Applikationen und Grafik | 3 | 24.10.2006 20:35 |
| Vokabeltrainer | asenodin | Allgemeine Java-Programmierung | 9 | 28.05.2006 21:04 |
| Button hat Standard-L&F wenn er außerhalb von Methoden deklariert wird | Corvin | Allgemeine Java-Programmierung | 11 | 17.02.2006 14:55 |
| Button mit Enter bestätigen | Eru | Desktop-Applikationen und Grafik | 6 | 29.12.2005 22:22 |
| Strings senden und empfangen mit einem ClientSocket über TCP | MJA | Allgemeine Java-Programmierung | 3 | 10.11.2005 18:48 |