Christian: History löschen?

Hi!

Ich hab hier ein Bestellsystem mit Warenkorb gebaut, und würde gerne erreichen, dass man nach erfolgreichem Einkauf, also nach der Bestätigunsseite nicht mehr mit dem back button zurückkommt. Geht das irgendwie?

Ciao
Christian

  1. Moin,

    Ich hab hier ein Bestellsystem mit Warenkorb gebaut, und würde gerne erreichen, dass man nach erfolgreichem Einkauf, also nach der Bestätigunsseite nicht mehr mit dem back button zurückkommt. Geht das irgendwie?

    Nicht mit HTML oder einer sonstigen Clientseitigen Technik. Du kannst aber die Seiten mit einem sehr kurzen Haltbarkeitsdatum markieren und sie nicht cache-fähig machen und dann den Server anweisen die Seite nicht noch einmal auszuliefern.

    --
    Henryk Plötz
    Grüße aus Berlin

    1. Moin!

      Nicht mit HTML oder einer sonstigen Clientseitigen Technik. Du kannst aber die Seiten mit einem sehr kurzen Haltbarkeitsdatum markieren und sie nicht cache-fähig machen und dann den Server anweisen die Seite nicht noch einmal auszuliefern.

      Doch, _nur_ mit clientseitiger Technik. Allerdings dürfte das nicht viel helfen.

      Es gibt "location.replace()". Damit wird der derzeitige Eintrag mit der nächsten Seite überschrieben, man kommt also von dann in der History von der so aufgerufenen Seite nur auf die vorhergehende (sofern es eine gibt), aber nicht mehr auf die aktuelle Seite.

      Allerdings ist diese Methode nicht geeignet, um Formulare abzuschicken - und darum geht es bei einem Warenkorb ja meist.

      Einzige Chance: Das Zurückgehen einfach _nicht_ verhindern, aber serverseitig durch geeignete Maßnahmen (einmalig ausgegebene IDs im Formular) sicherstellen, daß kein Formular zweimal geschickt werden kann.

      Alternative: Den Bestellvorgang in einem Popup-Fenster abwickeln, was sich nach dem letzten Abschicken des Formulars selbst schließt. Damit ist die History dieses Fensters auch gelöscht. Aber Popup-Fenster sind nicht unbedingt die beste Lösung.

      - Sven Rautenberg

    2. Moin,

      Ich hab hier ein Bestellsystem mit Warenkorb gebaut, und würde gerne erreichen, dass man nach erfolgreichem Einkauf, also nach der Bestätigunsseite nicht mehr mit dem back button zurückkommt. Geht das irgendwie?

      Nicht mit HTML oder einer sonstigen Clientseitigen Technik. Du kannst aber die Seiten mit einem sehr kurzen Haltbarkeitsdatum markieren und sie nicht cache-fähig machen und dann den Server anweisen die Seite nicht noch einmal auszuliefern.

      --
      Henryk Plötz
      Grüße aus Berlin

      Danke erstmal :)

      Gibts denn keine Möglichkeit, das klicken auf den Back Button abzufangen und auf eine andere Seite zu verweisen?

      1. Moin,

        Gibts denn keine Möglichkeit, das klicken auf den Back Button abzufangen und auf eine andere Seite zu verweisen?

        Nein.

        --
        Henryk Plötz
        Grüße aus Berlin

      2. Moin nochmal!

        Danke erstmal :)

        Gibts denn keine Möglichkeit, das klicken auf den Back Button abzufangen und auf eine andere Seite zu verweisen?

        Um es nochmal ganz deutlich zu sagen: Die History-Funktionen sind eine Sache, bei der

        1.) der Server garnicht gefragt ist. Der Browser bedient sich aus seinem Cache, ohne irgendeine Verbindung aufzunehmen (wobei anzumerken ist, daß sich alte IEs und Netscapes an diesen Standard _nicht_ halten und doch beim Server nachfragen - das ist aber nicht garantierbar).

        2.) man per Javascript keinen Einfluß nehmen kann. Die History ist eine sensitive Geschichte, und der einzige Kontakt dazu besteht in Javascript durch das history-Objekt und location.replace(). Das Problem ist: Javascript kann ausgeschaltet sein, also sind alle Versuche, darüber einen Aufruf sicher zu verhindern, vollkommen sinnlos.

        - Sven Rautenberg