sub cookie { local($name, $value, $pair, $buffer, @pairs); @pairs = split(/; /, $ENV{'HTTP_COOKIE'}); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); next if(!defined($value)); if($cookie{$name}){ # &virhetilanne("Kaksi samannimistä cookieta\n$name = $value\n$name = $cookie{$name}\n\n","jatka"); next; } $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $cookie{$name} = $value; } return(1); } sub set_cookie{ my($arvo, $kesto, $polku) = @_; $polku ||="/"; if($domain = $ENV{SERVER_NAME}){ $domain =~s/([^\.]+\.)(com|net|org)$/\1\2/; } if($kesto){ $expire = gmtime(int(time + 60*60*24*$kesto)); $expire =~/(...) (...)\s+(\d+) (\S+) (\d+)/; #Sat Jul 7 12:41:25 2001 $expire = qq|$1, $3-$2-$5 $4 GMT|; #Mon, 22-Mar-2004 00:00:00 GMT print qq|set-cookie: $arvo; domain=$domain; path=$polku; expires=$expire\n|; } else{ print qq|set-cookie: $arvo; domain=$domain; path=$polku;\n|; } } sub poista_cookie{ print qq|set-cookie: $_[0]=""; expires=Wed, 29-Aug-2001 00:00:01 GMT\n|; } 1;