Problem: "Seite kann nicht angezeigt werden..." beim Browser-Zurück-Button

ultratom

Grünschnabel
Hallo, wenn man mit den von mir bereitgestellten Buttonknöpfen in meinem Shopsystem blättert oder auch nach in ankreuzen in den Warenkorb und zurück geht, wird alles bestens angezeigt. Wenn ich jedoch den Zurück-Button des Browsers benutze, dann kommt die Meldung "Die Seite kann nicht angezeigt werden". Ich weiss, die Frage ist sehr allgemein formuliert, aber die Details müsste man erst herausfinden. Kann mir jemand eine Lösung dazu geben ? Ich würde gerne nur php und mysql verwenden. (beim Blättern in anderen Systemen im Internet sehe ich, dass es dort funktioniert, dort wird aber auch Javascript, Cookies etc. verwendet -> liegt es daran ?) Vielen Dank für die Hilfe im Voraus.
 
„Die Seite kann nicht angezeigt werden“ ist eine recht ungenaue Fehlerbeschreibung. Welche Ursache hat denn diese Fehlermeldung?
 
Gumbo hat gesagt.:
Welche Ursache hat denn diese Fehlermeldung?
Dann mach ich mal einen Schuss ins Blaue:
Ist die Seite, auf die Du mit dem Browser-Back-Button zurückgehst, als Ziel eines POST-Formulars entstanden?
 
Ja, so ist sie entstanden. Hab bei anderen Seiten auch die Übergabe mit POST gesehen, und dort kann man mit dem Browser-Back-Button als auch mit dem Forward-Button hin und herspringen, ohne dass der Fehler kommt. Ich zähle auch die Seiten und leg die Seitennummern in einer SESSION-Variablen ab. Ich würd mir ja selber eine Lösung bauen, aber ich weiss nicht mal, wie ich erkenne, ob die Browser-Button benutzt wurden. Kann man das Problem mit PHP alleine überhaupt in den Griff kriegen ?
 
Ja kannst Du.
Und zwar mit [phpf]header[/phpf] (Location: URI).
Du kannst, wenn Du POST-Daten empfangen und verarbeitet hast, auf eine Seite weiterleiten, welche ohne die POST-Parameter auskommt. Dann sollte der Browser den Back-Button akzeptieren.
Es mag noch andere Möglichkeiten geben, mir fällt jedoch keine ein.
Mit der Weiterleitung über den HTTP-Header umgehst auch das Problem (was hier der Browser Clientseitig umgeht), dass die Daten zwei mal verarbeitet werden.
 
Momentan wird alles (abgesehen von der Startseite) von einer seite gemacht, abhängig welchen von mir bereitgestellten Button man klickt. Mit deinem Vorschlag müsste ich dann eine neue Seite erstellen. Woher "wissen" dann die per Browser-Button angesteuerten Seiten, welchen Inhalt sie haben sollen ? Kann ich mit dem Verfahren beliebig viele, d.h. alle bisher schon mal besuchten und somit durch die Browser-Button ansteuerbaren Seiten darstellen ?
übrigens nochmals vielen Dank für eure Hilfe, eigentlich müsste man halt einen Guru an der Seite haben für die Strategie, die Arbeit mach ich dann gerne selbst.
 
Du müsstest mal ein bisschen mehr von Deinem Konzept (technischer Art) verraten.
Verwendest Du Buttons (<input type="submit"...>) und damit deren POST-Werte als Links?
Dann könntest du sie doch als GET-Parameter übermitteln?
Ich habe ja so eine Ahnung, was Du verrücktes machen könntest, dass diese Lösung nicht funktionieren würde, aber meine Glaskugel habe ich eben schon ausgereizt. Deswegen halt ich mal erstmal meinen Mund und lass Dich ein bisschen erzählen.

Gruß hpvw
 
Auf der Startseite (Startseite stellt eigentlich nicht das Problem dar, nur zur Vollständigkeit genannt) wird per JavaScript-Textnavigation ein Bereich ohne Formular ausgewählt, mit dieser Auswahl wird auf der nächsten Seite aus der Datenbank die Seite erstellt:
<form name='form3' method='post' action='reiseangebot.php' style='margin:0px;padding:0px'> <table width='380' border='0' cellspacing='1' cellpadding='1'>
<tr bgcolor = '#FFFFFF'><td width='80' ><div align='center'><input type='checkbox' name=\"reisen[]\" value=\"$row[id]\"</div></td><td width='300'><div align='center'>$row[reisebeschreibung]</div></td></tr>

bei Neuaufruf der Seite 'reiseangebot.php' werden alle reisen ausgegeben, dort steht dann das Array "reisen[]" zur Verfügung und wird ausgewertet. Hier kann dann mit der jeweiligen Seitenzahl in einer SESSION-Variablen geblättert werden. Falls die Checkboxen geklickt wurden, werden durch klicken des Buttons "reisenauswahl" diese dann gezielt aus der Datenbank geholt und nur diese dann dargestellt.

Ich hoffe, die Beschreibung ist besser, ansonsten poste ich morgen mal den Code, aber nur den relevanten Teil.
 
Gut, dass ich meinen Mund gehalten habe :p
Du kannst z.B. das Array Reisen, wenn es per POST übergeben wird in die Session schreiben und dann mit header auf dieselbe Seite mit einem GET-Parameter (z.B. reisenAusSessionAnzeigen <- natürlich nicht so ewig lang, war nur zum verdeutlichen) weiterleiten. Wenn dieser GET-Parameter gesetzt ist, holst Du das Array aus der Session und arbeitest damit, wie Du es jetzt mit dem Array aus aus den POST-Parametern machst.
 
und das geht auch über alle schon mal aufgerufene Seiten, so dass der User praktisch seine "Original"-Seiten erhält (gemeint ist natürlich, sie sehen so aus und verhalten sich so...) ?
 
Zurück