Mike© : Zurück mit dem Browser Back Button - Seite nicht mehr anzeigen

Moin @ all,

leider muss ich etwas langatmig ausholen, damit die Aufgabenstellung transparent wird.

Meine Zwillinge haben eine eigene Page. Auf dieser Page möchte ich ein kleines Ratespiel einbauen, nach dem Motto "Who is Who"

Das Ratespiel soll sich über 3 Pages erstrecken. Damit es nicht so leicht wird soll die erste Page ein Kind zeigen (keine Vergleichsmöglichkeit mit Kind 2). Die Page 2 dann das "zweite" Kind und Page 3 beide Kids.

Nun das Problem:
Wenn der User seinen Tipp auf Page 1 abgegeben hat und dann auf Page 2 weitergeleitet wird, dann kann er auf den Browser Back Button klicken um Bild 1 mit Bild 2 zu vergleichen. Das erhöht unter Umständen die Chancen richtig zu raten, denn es gibt kleine feine Unterschiede.

Würde ich für jede Page ein PopUp öffnen, wäre das Problem "Back Button" behoben. Möchte ich aber nicht.

Also wie kann ich vermeiden, das nach dem Voting des ersten Bildes dieses nochmal angezeigt wird, bzw. diese Page nochmal angezeigt wird?

Benutzt wird PHP.

Danke & regds
Mike©

--
Freunde kommen und gehen. Feinde sammeln sich an.
  1. Hallo,

    Nun das Problem:
    Wenn der User seinen Tipp auf Page 1 abgegeben hat und dann auf Page 2 weitergeleitet wird, dann kann er auf den Browser Back Button klicken um Bild 1 mit Bild 2 zu vergleichen. Das erhöht unter Umständen die Chancen richtig zu raten, denn es gibt kleine feine Unterschiede.

    Dann wirst Du um JavaScript nicht herumkommen. Das Weiterleiten darf kein normaler Link ausführen, sondern ein JavaScript über location.replace.

    Allerdings kann man trotzdem vor dem Klicken des JavaScript-Links ein neues Browser-Fenster oder einen neuen Browser-Tab öffnen und hat so trotzdem beide Bilder zum Vergleich ;-)).

    viele Grüße

    Axel

    1. Moin Axel,

      Allerdings kann man trotzdem vor dem Klicken des JavaScript-Links ein neues Browser-Fenster oder einen neuen Browser-Tab öffnen und hat so trotzdem beide Bilder zum Vergleich ;-)).

      Yep, für "erfahrene" User ein weiterer Aspekt.
      Hm, wenn ich JS nutzen muss, dann lasse ich es lieber ganz sein.
      Das wäre wohl ein Sache für Flash. Allerdings hatte ich es bei Kapitel 8 aufgegeben ;-)

      regds
      Mike©

      --
      Freunde kommen und gehen. Feinde sammeln sich an.
      1. Hi,

        Hm, wenn ich JS nutzen muss, dann lasse ich es lieber ganz sein.

        es sollte auch ohne clientseitige Programmierung gehen.
        Rufe beide Seiten über Formulare mit Post-Parametern auf. Stelle außerdem über IP-Sperre und hilfsweise Cookies sicher, daß die erste Seite nicht doppelt aufgerufen weden kann. Dann sollte eigentlich nur noch ein Screenshot oder AOL helfen.

        freundliche Grüße
        Ingo

        1. Moin Ingo,

          Rufe beide Seiten über Formulare mit Post-Parametern auf.

          das mache ich bereits. Die Weiterleitung erfolgt über einen Button in einem Formular mit Post und Header.

          Dennoch wird beim Klicken auf den Back button die vorherige Seite gezeigt.

          regds
          Mike©

          --
          Freunde kommen und gehen. Feinde sammeln sich an.
  2. echo $begrüßung;

    Also wie kann ich vermeiden, das nach dem Voting des ersten Bildes dieses nochmal angezeigt wird, bzw. diese Page nochmal angezeigt wird?

    Du könntest es so versuchen:
    Verbiete das Caching - sende z.B. einen Expires-Header aus der Vergangenheit. Der Browser soll sich den Content immer neu vom Server abholen.
    Verwende für das Bild immer den gleichen Ressourcen-Aufruf (URL).
    Der Content des Bild-Scripts wird anhand von Session-Daten generiert. Das heißt, wenn in der Session steht, dass jetzt Schritt 2 dran ist, gibt das Bild-Script das 2. Bild aus.
    Deine Programmlogik muss nur verhindern, dass der "Zeiger" nicht mehr auf Bild 1 zurückgestellt werden kann, wenn er bereits auf Bild 2 zeigt.

    echo "$verabschiedung $name";

    P.S. Abgeschaut bei meinem lokal betriebenen Wiki (dient hier als Lesezeichenersatz). Eine Seite wird angezeigt. Mittels Editieren-Link wird eine Edit-Seite aufgerufen. Nach Speichern der Änderungen sehe ich den neuen Inhalt unter der gleichen URL. Gehe ich 2 Schritte zurück sehe ich auch nur noch den neuen Inhalt.

    1. Moin dedlfix,

      Verbiete das Caching - sende z.B. einen Expires-Header aus der Vergangenheit. Der Browser soll sich den Content immer neu vom Server abholen.

      das funktioniert nicht zuverlässig :-(

      Der Content des Bild-Scripts wird anhand von Session-Daten generiert. Das heißt, wenn in der Session steht, dass jetzt Schritt 2 dran ist, gibt das Bild-Script das 2. Bild aus.

      Wenn keine Cookies zugelassen werden, dann fällt auch die Session hinten runter :-(

      regds
      Mike©

      --
      Freunde kommen und gehen. Feinde sammeln sich an.
      1. echo $begrüßung;

        Wenn keine Cookies zugelassen werden, dann fällt auch die Session hinten runter :-(

        Nö, dann wird die Session-ID an die URL gehängt und weiter geht's. So eine URL bleibt auch konstant, solange der Browser nicht geschlossen wird.

        Was du aber nicht verhindern kannst, ist wenn jemand mit zwei Browserinstanzen arbeitet. Aber ob die Zielgruppe schon so clever ist? Wenn ja, gehören sie sicher nicht mehr zur Zielgruppe.

        echo "$verabschiedung $name";

    2. Hallo dedlfix,

      Nach Speichern der Änderungen sehe ich den neuen Inhalt unter der gleichen URL. Gehe ich 2 Schritte zurück sehe ich auch nur noch den neuen Inhalt.

      Dann ist dein Browser kaputt - meiner zeigt die Seite immer so an, wie ich sie verlassen habe (bei https-Seiten ist das Verhalten von "Always Reload HTTPS In History" abhängig).

      Grüße aus Nürnberg
      Tobias

      1. echo $begrüßung;

        Nach Speichern der Änderungen sehe ich den neuen Inhalt unter der gleichen URL. Gehe ich 2 Schritte zurück sehe ich auch nur noch den neuen Inhalt.
        Dann ist dein Browser kaputt

        Das glaube ich nicht. Dieses Verhalten zeigt sowohl der IE als auch der FF. Wer es probieren will: Ich verwendet PmWiki

        echo "$verabschiedung $name";

        1. echo $begrüßung;

          Nach Speichern der Änderungen sehe ich den neuen Inhalt unter der gleichen URL. Gehe ich 2 Schritte zurück sehe ich auch nur noch den neuen Inhalt.
          Dann ist dein Browser kaputt

          Das glaube ich nicht. Dieses Verhalten zeigt sowohl der IE als auch der FF. Wer es probieren will: Ich verwende PmWiki.

          Nachtrag: Der Opera zeigt bei Zurückgehen die alte Version an. Jedoch merkt er sich in der History pro URl auch nur ein Dokument.

          Von "kaputt" oder "ganz" zu sprechen halte ich mindestens für übertrieben, da dieses Verhalten bestimmt in keiner Spezifikation geregelt ist.

          Aber gut. Bisheriger Stand: IE und FF eignen sich für diese Vorgehensweise, Opera nicht.

          echo "$verabschiedung $name";

          1. Hallo dedlfix,

            Nachtrag: Der Opera zeigt bei Zurückgehen die alte Version an.

            Eben - und ich verwende Opera :-)

            Jedoch merkt er sich in der History pro URl auch nur ein Dokument.

            Wieviele Seiten sich Opera genau merkt, weiß ich jetzt nicht, aber es dürfte mehr als eine sein.

            Von "kaputt" oder "ganz" zu sprechen halte ich mindestens für übertrieben, da dieses Verhalten bestimmt in keiner Spezifikation geregelt ist.

            Wenn ich mich recht erinnere, hatten wir das Thema schon mal und irgendjemand hat die entsprechende Stelle in der Spezifikation ausgegraben - eine kurze Such ergab, dass es Sven war: http://forum.de.selfhtml.org/archiv/2005/4/t105413/#m651801.

            Grüße aus Nürnberg
            Tobias

            1. echo $begrüßung;

              Wieviele Seiten sich Opera genau merkt, weiß ich jetzt nicht, aber es dürfte mehr als eine sein.

              Da nehme ich an, dass es maximal so viele sein werden, wie Einträge in der Back-Button-History Platz haben.

              Wenn ich mich recht erinnere, hatten wir das Thema schon mal und irgendjemand hat die entsprechende Stelle in der Spezifikation ausgegraben - eine kurze Such ergab, dass es Sven war: http://forum.de.selfhtml.org/archiv/2005/4/t105413/#m651801.

              OK, ich gebe mich geschlagen. Dass jemand solch ein spezielles Client-Verhalten regelt habe ich nicht erwartet.

              echo "$verabschiedung $name";

              P.S: Der Opera hält sich nicht konsequent an diesen Punkt der RFC („User agents often have history mechanisms, such as "Back" buttons and history lists, ...“). Für den Back-Button behält er die alten Versionen, für die „history list“ nicht.

  3. Moin @ all,

    mein Workaround: Ich lasse das eigentliche Quiz in einem I-Frame laufen. Darin erzeuge ich die 3 relevanten Pages dynamisch. Somit führt der Browser Back Button nicht mehr auf des vorherige Bild, sondern auf die Einführungsseite des Quiz.

    Danke für Eure Lösungsansätze.

    regds & guten Rutsch
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hallo Mike©.

      mein Workaround: Ich lasse das eigentliche Quiz in einem I-Frame laufen. Darin erzeuge ich die 3 relevanten Pages dynamisch. Somit führt der Browser Back Button nicht mehr auf des vorherige Bild, sondern auf die Einführungsseite des Quiz.

      Im Opera schon.

      Einen schönen Mittwoch noch.

      Gruß, Ashura

      --
      Last Tears Keep Calling
      See Angels Falling
      Black Shadows In Your Head
      And One Eye For The Dead
      1. Moin Ashura,

        Im Opera schon.

        *GRML* ist nicht Dein Ernst :-( Ich werde das zu Hause testen.

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
        1. Hallo Mike©.

          Im Opera schon.

          *GRML* ist nicht Dein Ernst :-( Ich werde das zu Hause testen.

          Hm. Selbst im Firefox kann ich innerhalb der in einem Iframe geladenen Dokumente per Browserhistory hin und her wechseln.
          Für letzteres ist Fx 1.5 erforderlich, welcher zumindest zwei bereits besuchte Seiten im Cache behält, ohne sie neu zu laden.

          Einen schönen Mittwoch noch.

          Gruß, Ashura

          --
          Last Tears Keep Calling
          See Angels Falling
          Black Shadows In Your Head
          And One Eye For The Dead