Hi,
setcookie('Produkt['.$_GET['id'].']', $_GET['id'], time() + 3600*24);
in der Response zum aktuellen Request wird dem Client also ein Cookie mitgeschickt.
if(isset($_COOKIE['Produkt']))
Hier prüftst Du, ob im aktuellen Request bereits ein Cookie vom Client mitgesendet wurde.
Das oben gegebene Cookie konnte der Client natürlich beim aktuellen Request noch nicht mitschicken, er hat ja die Response, in dem ihm die Existenz dieses Cookies mitgeteilt wird, noch gar nicht erhalten.
Jetzt hätte ich gerne, dass schon bei dem Seitenaufruf, bei dem das Cookie gesetzt wird, in der Liste die ProduktID ausgegeben wird - das funktioniert aber bei mir erst nach einem Refresh der Seite - wieso?
Siehe oben. Der Client konnte das Cookie beim ersten Aufruf noch nicht mitschicken, weil er es noch gar nicht hatte - bei einem Refresh hat er es aber und kann es ggf. mitschicken (falls er überhaupt Cookies akzeptiert und der User auch dieses spezielle Cookie zugelassen hat).
Und wie bringe ich es fertig, dass das doch funktioniert wie gewünscht?
Nicht mit Cookie. Das _kann_ nicht funktionieren.
Aber in Deinem Script hast Du ja die Daten, die Du ins Cookie schreiben willst, also kannst Du die ja auch in die Ausgabe schreiben.
Ach ja: die Anzahl der Cookies pro Seite ist begrenzt. Wenn jemand also viel bei Deinem Shop bestellen will, hast Du ein Problem.
Es wäre m.E. sinnvoller, den Warenkorb-Inhalt nicht in Cookies zu speichern.
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.