Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Cookie löschen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Cookie löschen


 
jamaica-man
04-09-2003, 22:39 
 
Hallo alle zusammen, hab mal ne Frage zu einer Cookie löschen Funktion.
Speichere in einem Cookie-Array alle Produkte(die ID) sowie die jeweilige Anzahl der Produkte. Wenn ich das komplette cookie löschen will, geht das nicht.


<?
foreach ($_COOKIE['shop'] as $artikel_id => $artikel_anzahl)
{
setcookie('shop['.$artikel_id.']',$artikel_anzahl,time()-3600,'/');
}
?>


Wenn ich jetzt 3Artikel ausgewählt habe, und löschen will, dann löscht es immer nur den letzten Artikel.

Komisch oder? Woran kann das liegen? kann ich direkt das "shop" cookie löschen? wie lautet dann der aufruf?

mfg Martin

 
Titus
05-09-2003, 12:11 
 
Hmm ... sämtliche Erklärungsversuche führen in eine Sackgasse.
Aber nichts desto trotz wirst du mit Cookies irgendwann an eine Grenze stoßen, wenn zuviele verschiedene Artikel in den Warenkorb gelegt werden.

Besser ist also, du speicherst die Artikel auf dem Server - am besten in einer Session - und speicherst im Cookie nur einen Verweis auf die Daten - bei Sessions geschieht das ebenso wie das Auslesen des Verweises (der Session-ID) automatisch, sofern in der php.ini session.use_trans_sid=1 (und session.use_cookies=1) ist.

 
jamaica-man
06-09-2003, 14:43 
 
Hallo alle,

Wie meinst du das mit alle Erklärungsversuche scheitern?
gibt es keine mgl. das zu lösen? Muss ja irgendwo ein Fehler sein oder? Oder schon bug?

mfg Martin

 
Titus
07-09-2003, 11:25 
 
"Alle Erklärungsversuche führen in eine Sackgasse."
Sprich ich hatte keine Idee, warum es nicht funktioniert; einen Lösungsvorschlag habe ich gemacht.

Übrigens legst du für jeden Artikel einen neuen Cookie an; nicht einen für alle Artikel. Aber das geht ja laut PHP-Handbuch auch ok so.

Aber da war doch mal was mit der Zeit ... wenn ich mich nicht irre, wird die nämlich in UST und nicht in lokaler Zeit gemessen. Und wenn dann noch die Uhr auf dem Client nachgeht ... Gib doch statt "time()-3600" einfach 0 an - das liegt definitiv in der Vergangenheit.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:51 Uhr.