Elischa: Cookies löschen

Beitrag lesen

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?