sockä Geschrieben 1. April 2008 Geschrieben 1. April 2008 Hallo, habe auf einer Seite eine Suche implementiert über ein <form> mit method="POST". Nach Absenden des Forms werden die Suchergebnisse angezeigt. Neben jedem Ergebnis gibt es einen "Details"-Link, über den er auf einer andere Seite springt und Details anzeigt. Kommt der Benutzer nun in Versuchung, den "Zurück"-Button des Browsers zu verwenden, um zur Ergebnisseite zurückzugehen, kommt im IE eine schöne fenstergroße Meldung "Webseite ist abgelaufen", der FireFox + Opera bringen eine Dialogbox. Nun natürlich meine Frage - wie verhindere ich das? Umstellen der Method auf "GET" kommt nicht in Frage. Kann man irgendwie Header senden, die das regeln? Danke + Gruß! Zitieren
Amstelchen Geschrieben 1. April 2008 Geschrieben 1. April 2008 sieh dir bitte zuerst mit z.b. httpliveheaders an, was der webserver exakt liefert (HTTP 200, 304). welche IE-version verwendest du? die angegebene meldung kenne ich nicht, allenfalls diese, dass bei einem reload der vorigen seite gefragt wird, ob ein HTTP POST erneut abgesetzt werden soll. s'Amstel Zitieren
sockä Geschrieben 2. April 2008 Autor Geschrieben 2. April 2008 Es wird ein HTTP 200 gesendet laut liveHTTP. Es ist wohl auch diese Meldung, dass POST-Daten noch einmal gesendet werden sollen, nur unter IE 7 heißt das seitenfüllend "Seite ist abgelaufen". Nach einem Reload sind die Daten wieder da - aber für den Benutzer ist es natürlich nicht schön... Zitieren
geloescht_JesterDay Geschrieben 2. April 2008 Geschrieben 2. April 2008 Nun natürlich meine Frage - wie verhindere ich das? Nein, denn das hat mit deiner Seite nichts zu tun und ist eine "Vorsichtsmaßnahme" des Browsers, um zu verhindern, dass Formulare 2mal abgesendet werden. Bzw ja... du kannst es verhindern indem du die Ergebnisseite nicht direkt nach dem Klick auf den Button anzeigst. Also die Actionseite bestimmt das Ergebnis und leitet aber den Browser nur um zu einer Seite, wo das angezeigt wird, sendet also nur einen header("location: ...."); Damit ist die Ergebnisseite nie die, die per Post erreicht wurde und somit kommt diese Meldung nicht mehr. Wie du das in deiner Anwendung regelst kann ich dir so aber nicht sagen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.