Marco: Warenkob und Browsercache :-(

Hallo zusammen,
mein Warenkorb befindet sich nun so langsam im Endstadium, doch eine Sache macht mir noch ordentlich Probleme: Der Browsercache! Trotz der entsprechenden META-Angaben (expires="0", cache-control="no-cache") wird bei Ausführung von Links eine veraltete Version angezeigt (z.B. als noch ein Artikel im Warenkorb war), nach einem Seitenrefresh erscheint jedoch die neuste Version (mit z.B. zwei Artikeln, inkl. des neu hinzugefügten).

Der Warenkorb ist in PHP programmiert, der Inhalt wird nach IP dynamisch ausgegeben.

Wisst ihr Abhilfe? Vielen Dank im Voraus schon für eure Postings!!

Gruß, Marco

  1. Ich muss vorneweg sagen, ich habe keine Ahnung von PHP, nur von CGI. Aber ich würde versuchen, an die URL für jeden Link eine Verbindung aus Zufallszahl und Uhrzeit (in Milisekunden) als Parameter anzuhängen, die bei jedem Seitenaufruf neu generiert wird, also

    <a href = "http://domain.host.de/index.php?123454711">

    oder wie auch immer man das in PHP macht.

    Die Zahl brauchst Du im PHP des warenkorbs nicht auswerten, sie dient nur dazu, den Browser glauben zu machen, er hätte eine andere URL vor sich.

    Hoffe, das hilft weiter.

    1. Hallo Jörg,

      Ich muss vorneweg sagen, ich habe keine Ahnung von PHP, nur von CGI.

      Macht doch nichts, das Endprodukt für den Browser ist bei beiden Sprachen ja HTML, oder? Zugegeben, ich hab keine Ahnung von CGI... ;-)

      Aber ich würde versuchen, an die URL für jeden Link eine Verbindung aus Zufallszahl und Uhrzeit (in Milisekunden) als Parameter anzuhängen, die bei jedem Seitenaufruf neu generiert wird, also [...]
      Die Zahl brauchst Du im PHP des warenkorbs nicht auswerten, sie dient nur dazu, den Browser glauben zu machen, er hätte eine andere URL vor sich.

      Hmm, diese Lösung habe ich mir auch schon überlegt, bevor ich den Thread hier aufgemacht habe, aber es schien mir zu umständlich. Ich hoffte, es gäbe auch eine elegantere, bessere Lösung... Und die gibt es zum Glück: Siehe Posting von RFZ, seine Codezeile - am Anfang des Skripts platziert - ist die Lösung. Für "Exprires" habe ich allerdings Null ("0") eingetragen.

      Trotzem herzlichen Dank für dein Posting!

      Gruß, Marco

  2. Moin,

    mein Warenkorb befindet sich nun so langsam im Endstadium, doch eine Sache macht mir noch ordentlich Probleme: Der Browsercache! Trotz der entsprechenden META-Angaben (expires="0", cache-control="no-cache") wird bei Ausführung von Links eine veraltete Version angezeigt (z.B. als noch ein Artikel im Warenkorb war), nach einem Seitenrefresh erscheint jedoch die neuste Version (mit z.B. zwei Artikeln, inkl. des neu hinzugefügten).

    Versuch's mal hiermit (PHP):
    header("Pragma: no-cache\r\nCache-control: no-cache\r\nExpires: Mon, 06 May 1996 01:00:00 GMT");

    greetz RFZ

    1. Hallo,

      Versuch's mal hiermit (PHP):
      header("Pragma: no-cache\r\nCache-control: no-cache\r\nExpires: Mon, 06 May 1996 01:00:00 GMT");

      Hey, vielen Dank! Es hat funktioniert!! :-)

      Nochmals Danke und Gruß, Marco