Hello,
Hallo zusammen,
ich habe mit meinem PHP-Script ein kleines Problem.
Hier erstmal ein kleiner Code-Ausschnitt:<?php
// Cookie setzen
if(isset($_POST['Submit']) AND $_POST['Submit'] == 'Produkt merken')
{
setcookie('Produkt['.$_GET['id'].']', $_GET['id'], time() + 3600*24);
}
Diese Information steht erst beim nächsten Request auf dem Server zur Verfügung
if(isset($_COOKIE['Produkt']))
{
foreach($_COOKIE['Produkt'] AS $ProduktID)
{
echo "Folgende ProduktID wurde gemerkt: " . $ProduktID . "<br>";
}
}?>
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?
Und wie bringe ich es fertig, dass das doch funktioniert wie gewünscht?
Gar nicht.
Du kannst nur so tun als ob.
Auf dem Server ist ja schon bekannt, dass das Produkt gemerkt werden soll.
Also kannst Du auch in das Array $_COOKIE einfach eintragen und _dann_ die Abfrage durchführen.
Ob der Cookie dann allerdings auf dem Client tatsächlich angenommen wird, weißt Du nicht im Voraus.
Beim nächsten Request stehen bei Scriptanfang aber wieder die Cookies im Array, die vom Client kommen.
Besser wäre es, Du würdest mit einer Session arbeiten, die man auf drei veschiedene Arten installieren kann:
- Cookies
- Transiente Session IDs (an alle Request-URLs angehängt)
- Basic Auth (dann musst Du den Sessionmechanismus selber starten)
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau