Thomas: Formulardaten bei aktualisieren im Browser nicht erneut senden oder abfangen

Habe schon das ganze Forum durchsucht, aber nichts gefunden !

Habe folgendes Problem:

Ich programmiere gerade ein Shop-System welches keine Cookies benützt.
Ich lasse in einem unteren Fenster meinen aktuellen Warenkorb anzeigen,
der sich je nach Auswahl der Artikel ändert (Ausehen und Gesamtpreis usw.)

Das funktioniert alles, aber wenn der Anwender zufällig die Seite aktualisiert,
wird an mein Perl-Script die gesammten letzten Daten der letzten Transaktion
übertragen.Ich kann dies nicht unterbinden ! (dazu bin ich einfach zu blöd !!).

Natürlich wird dann im Warenkorb der aktuelle Inhalt immer wieder erhöht oder entsprechend
verringert. Mein Programm arbeitet mit verschiedenen dat. Dateien, welche den jeweiligen
Inhalt speichern und wieder auslesen,aber sobald mann aktualisiert, wird wie gesagt, die
vorhergehende Transaktion erneut ausgeführt.

Weiß vielleicht jemand Hilfe ?

Danke im Vorraus

Thomas

  1. Habe schon das ganze Forum durchsucht, aber nichts gefunden !

    Habe folgendes Problem:

    Ich programmiere gerade ein Shop-System welches keine Cookies benützt.
    Ich lasse in einem unteren Fenster meinen aktuellen Warenkorb anzeigen,
    der sich je nach Auswahl der Artikel ändert (Ausehen und Gesamtpreis usw.)

    Das funktioniert alles, aber wenn der Anwender zufällig die Seite aktualisiert,
    wird an mein Perl-Script die gesammten letzten Daten der letzten Transaktion
    übertragen.Ich kann dies nicht unterbinden ! (dazu bin ich einfach zu blöd !!).

    Natürlich wird dann im Warenkorb der aktuelle Inhalt immer wieder erhöht oder entsprechend
    verringert. Mein Programm arbeitet mit verschiedenen dat. Dateien, welche den jeweiligen
    Inhalt speichern und wieder auslesen,aber sobald mann aktualisiert, wird wie gesagt, die
    vorhergehende Transaktion erneut ausgeführt.

    Weiß vielleicht jemand Hilfe ?

    Danke im Vorraus

    Thomas

    hi thomas,
    ich würde gerne versuchen dir zu helfen, aber dann solltest du dein system vielleicht etwas genauer beschreiben.
    spiel doch mal mit der $ENV{'HTTP_REFERER'} variable rum, das könnte dir vielleicht helfen. dann weißt du von wo das script ausgeführt wurde.
    wenn jemand einen reload macht, müsste der referer eigentlich gleich dem script namen sein. in diesem fall könntest du dann das erneute übertragen der daten unterdrücken...
    wenns nicht geht schreib bitte mal genauer was dein script macht und welche übertragungsmethoden du benutzt u.s.w...

    danny

    1. Hallo Thomas,

      da Du sagst, das beim Reload immer sich die Daten verdoppeln, gibt es zwei Lösungsansätze, die mir so auf Anhieb einfallen:

      1. Lass das Script die neuen Daten jeweils mit den vorherigen Daten vergleich, sind sie gleich, schickt es sie in den Datenhimmel. Wäre vielleicht über eine weitere .dat Datei zu realisieren.

      2. Fang im Browser mit JS den Reload ab, onreload, in der Funktion setzt Du eine Variable auf 1, und vor dem Scriptaufruf prüfst Du, ob der Zähler gleich 1 ist, wenn ja --> ab in den Datenhimmel.

      Wobei sich die Frage stellt, wie wird das Script aufgerufen? Kannst Du vielleicht schon darüber etwas machen, in dem Du diese Methode änderst

      Jens

      1. hi there,

        hab noch ne idee:

        wie wärs mit nem timestamp, der verglichen wird. wenn die daten beim aktualisieren nochmals übergeben werden, haben sie denselben timestamp, wie die bereits im warenkrb gespeicherten daten und fliegen deshalb raus!!!!
        cu pete

      2. Hallo Jens

        1. Fang im Browser mit JS den Reload ab, onreload, in der Funktion setzt Du eine Variable auf 1, und vor dem Scriptaufruf prüfst Du, ob der Zähler gleich 1 ist, wenn ja --> ab in den Datenhimmel.

        Deine Idee ist sehr gut, werde ich gleich ausprobieren.

        Danke nochmal.

        Thomas

  2. hi thomas
    vielleicht hilft dir ja das:
    im gegensatz zum aktualisieren-button, wird beim drücken auf einen submit-button die submit-variable auf den namen des buttons gesetzt. vielleicht geht das so, um dein prob zu lösen???

    hmm, würde gerne mal wissen, ob beim aktualisieren auch diese variable wieder mitübertragen wird - wahrscheinlich schon, oder?

    ein versuch war's wert :-)

    cu pete

  3. Das funktioniert alles, aber wenn der Anwender zufällig die Seite aktualisiert,
    wird an mein Perl-Script die gesammten letzten Daten der letzten Transaktion

    Hallo,
    Ich hatte ein ähnliches Problem,löste sich durch die Verwendung von Frames in Wohlgefallen auf.
    Suche unter Reload im Archiv brachte mich zu folgendem Lösungsansatz:
    http://www.teamone.de/selfaktuell/artikel/wertueb.htm#a3

    Gruss
    Christian

    1. Ich hatte ein ähnliches Problem,löste sich durch die Verwendung von Frames in Wohlgefallen auf.
      Suche unter Reload im Archiv brachte mich zu folgendem Lösungsansatz:
      http://www.teamone.de/selfaktuell/artikel/wertueb.htm#a3

      Gruss
      Christian

      Hallo Christian,

      habe deinen Demoshop angeschaut, sieht gut aus, aber wenn ich im Warenkorb die Seite aktualisiere, dann ergibt sich das gleiche Problem wie bei mir, nämlich die letzte Transaktion wird nochmals angezeigt.

      Probiers aus,

      Thomas

      1. habe deinen Demoshop angeschaut, sieht gut aus, aber wenn ich im Warenkorb die Seite aktualisiere, dann ergibt sich das gleiche Problem wie bei mir, nämlich die letzte Transaktion wird nochmals angezeigt.

        das kennen wir, aber da der User ja gefragt wird ("Die Seite kann ohne erneutes Senden der Information nicht aktualisiert werden...."
        ), nehmen wir das mal in Kauf.
        wenn er ok-klickt  seine Entscheidung, den WK kann er kontrollieren und vor endgültiger Bestellung aufräumen.
        ich hab den "onreload- vergiss den submit" bewusst wieder ausgebaut.
        aber das ist Geschmackssache.
        noch eine Möglichkait ist, den Shop in einem Window ohne Standard-Buttons zu öffnen (gefällt mir allerdings nicht)

        Gruss
        Christian

        1. das kennen wir, aber da der User ja gefragt wird ("Die Seite kann ohne erneutes Senden der Information nicht aktualisiert werden...."
          ), nehmen wir das mal in Kauf.
          wenn er ok-klickt  seine Entscheidung, den WK kann er kontrollieren und vor endgültiger Bestellung aufräumen.
          ich hab den "onreload- vergiss den submit" bewusst wieder ausgebaut.
          aber das ist Geschmackssache.
          noch eine Möglichkait ist, den Shop in einem Window ohne Standard-Buttons zu öffnen (gefällt mir allerdings nicht)

          Gruss
          Christian

          ------------> Du hast vollkommen recht, mann kann es nicht
          jeden User Recht machen und jedes Fehlverhalten abfangen.
          Ich werde einfach einen Hinweis anzeigen lassen und wenn den der User nicht beachtet, dann kann er den Warenkorb immer noch per Hand korrigieren.

          Gruss, Thomas