Cookies setzen und auslesen mit ssp

Begonnen von dobra, Mai 09, 2009, 09:56:08

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

wieder mal ein Tipp für Shopbastler

für manche Funktionen die sowohl für angemeldete als auch nicht angemeldete Besucher verwendbar sein sollen und die Variablen auch nach schließen des Browsers noch abrufbar sein sollen (also cart_write_var nicht benutzt werden kann), kann man Cookies verwenden.
(soweit der Kunde Cookies zulässt)

mit ssp geht das ganz einfach
(wenn man mal herausgefunden hat "wie"  ;))

Cookie setzen:
<!--spmacro:module(Callback)
sub begin_read_template {
...
use strict;
use CGI qw(:standard);
my $q = CGI->new();
my $cookie = $q->cookie(
-name=>'mycookie',
-value=>$a,
-expires=> '+10y');

print redirect(
-URL => "$ssp::xxpath?udc_$page,__xxsession__",
-COOKIE => $cookie
);
...
}
-->

damit die neu gesetzten Cookies ausgelesen und verarbeitet werden können, muß die Seite neu geladen werden.
Das erreicht man automatisch mit der redirect Anweisung.
bei -URL => die Seite eintragen, die nach Absenden des Formulars aufgerufen wird.
bei -expires=> wird die Lebensdauer des Cookies eingetragen (im Beispiel 10 Jahre)

Cookies auslesen und verwenden:
...
use CGI;
my $cgi = CGI->new();
my $cookie = $cgi->cookie('mycookie');
...
if ($xx eq "$cookie") { mach was }
else { mach was anderes }
...


will man mehrere Cookies auf einmal setzen, geht das so:
use strict;
use CGI qw(:standard);
my $q = CGI->new();
my $cookie1 = $q->cookie(
-name=>'mycookie1',
-value=>$a,
-expires=> '+10y');

my $cookie2 = $q->cookie(
-name=>'mycookie2',
-value=>$b,
-expires=> '+10y');

print redirect(
-URL => "$ssp::xxpath?udc_$page,__xxsession__",
-COOKIE => [$cookie1,$cookie2]
);


mfG
dobra