Hallo,
Was machst du denn mit htmlspechialchars() an den Eingabedaten? Eigentlich will man mit Rohdaten arbeiten und erst beim Einfügen in die Ausgabe das htmlspechialchars() anwenden.
Hab ich geändert
// Cookie für den Warenkorb eines Users anlege
if (!isset($_COOKIE['warenkorbId']))
{
setcookie("warenkorbId", uniqid(), time()+86400);
$userWarenkorbID = $_COOKIE["warenkorbId"];
} else {
$userWarenkorbID = $_COOKIE["warenkorbId"];
}
Jein. In $_COOKIE steht, was vom Client kommt, beziehungsweise was mit seinem Request mitkam. Ein setcookie() allein bewirkt keine Änderung in $_COOKIE. Erst wenn die Response mit dem setcookie() beim Client beim Client angekommen ist und dieser einen neuen Request stellt, kannst du in $_COOKIE die Änderungen beobachten.
Mein Problem habe ich nach längerem basteln so gelöst bekommen (zumindest funktionierte es bei meinem Test).
In meiner header.php liegt
if (isset($_SESSION['loeschenCookieWKID'])) {
if ($_SESSION['loeschenCookieWKID'] === 1)
{
setcookie("visitorId","",time() - 3600);
setcookie("warenkorbId","",time() - 3600);
}
}
In meiner anfrage.php habe ich dieses ans Ende des insert Scriptes eingefügt:
$_SESSION['loeschenCookieWKID'] = 1;
Was ich nicht ganz verstehe warum ich diesen Umweg gehen muss?