IBO - Vertriebspartner in Österreich             
ShopPilot.at
zurück Home     ShopPilot.at Tutorials Scripte für diverse Aufgaben Seite empfehlen Seite drucken    teilen
Tipps - Tricks - Lösungen

Thema: Cookies setzen und auslesen mit ssp
Autor: dobra

Aufgabe:
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)

Lösung:
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,0",
				-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,0",
				-COOKIE => [$cookie1,$cookie2]
				);



Wenn Sie fragen zum Artikel haben, bitte im Support-Forum stellen.