php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
zurück und der warenkorb (mal wieder)


 
frank7l7
02-12-2005, 19:33 
 
hallo,

wohl ehr ein bekanntes problem aber ne lösung habe ich nocht nicht gefunden.

ich hab einen shopseite in der die zu bestellenden artikel per POST an die gleiche seite per PHP_SELF verschickt werden beim abarbeiten werden die POST Daten verarbeitet und in einen session warenkorb gespeichert. soweit so gut - angenommen ich lege grade einen artikel in den warenkorb
und drücke gleich darauf auf zurück im browser krieg ich dann die gecachte seite präsentiert wo der artikel noch nicht drin ist.

ich hab schon versucht das cahchen zu verhindern oder per weiterleitung is alles driss - wo ist hier mein denkfehler

danke

jungs

 
reallife
02-12-2005, 19:49 
 
Prüfe doch beim laden des Warenkorbes ob Artikel in der Session hinterlegt sind, wenn ja dann soll er die auslesen.
Und am besten noch ein Metatag setzen, das er die Seite bei jedem Aufruf vom Server laden soll.
<meta http-equiv="cache-control" content="no-cache">
Falls deine Benutzer über einen Proxy kommen, solltest Du folgenden Metatag noch einfügen:<meta http-equiv="pragma" content="no-cache">
Ich hoffe ich habe dich richtig verstanden..

greatz

 
frank7l7
02-12-2005, 20:22 
 
vielleicht sollte ich noch hinzufügen das bei mir der warenkorb immer sichtbar ist und immer die menge und den artikel zeigt - hier liegt ja das problem. das mit cache leeren hab ich schon das fkt aber auch nicht? woher nimmt er den die daten bei zurück gehen. ich habe:


header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Cache-Control: post-check=0, pre-check=0", false);


benutzt und trotzdem gibt er beim zurück den alten driss wieder aus - zum verweifeln

Wollt nochwas hinzufügen ->

spontan fällt mir ein den warenkorb in einen iframe zusetzen das müßte doch gehen oder?

 
frank7l7
02-12-2005, 21:44 
 
ach ie is einfach dreck nach langem hin und her habs ich es doch geschaft: wer das gleiche problem hat und eine crossbrowser kompatible lösung sucht damit auf wirklich nicht aus dem cache geladen wird der nehme:




if(!empty($_SESSION["session_bestellen"]) OR !empty($_SESSION["session_anfragen"])):
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Content-Length: 99999");
endif;

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><?php
if(!empty($_SESSION["session_bestellen"]) OR !empty($_SESSION["session_anfragen"])):?>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache"><?php
endif;?>

......


das fkt!!!

 
penizillin
02-12-2005, 23:15 
 
und was hat es mit Content-Length zu tun?

 
frank7l7
03-12-2005, 08:33 
 
is für nen ie gedacht hab ich beim googlen gefunde, habs einfach dringelassen obwohl die meta angaben wohl das cache lesen verhindern, das ja der ie bekanntlich soviele bugs hat sorgt content-length 99999 zusätzlich dafür das ie sich gleich entscheidet die seite neu aufzubauen

 
penizillin
03-12-2005, 12:18 
 
vielleicht solltest du dich erstmal über das caching informieren, bevor du gott und die welt schuld für deine fehlehaften anwendungen gibst. nicht alles, was sich er-google-n lässt, ist auch sinnvoll.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:54 Uhr.