sub set_cookie
{
my ($expires,$domain,$path,$secure,$cookie) = @_;
my(@days) = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
my(@months) = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
my($seconds,$min,$hour,$mday,$mon,$year,$wday) = gmtime($expires) if ($expires > 0); #get date info if expiration set.
$seconds = "0" . $seconds if $seconds < 10; # formatting of date variables
$min = "0" . $min if $min < 10;
$hour = "0" . $hour if $hour < 10;
my(@secure) = ("","secure"); # add security to the cookie if defined. I'm not too sure how this works.
if (! defined $expires)
{
$expires = " expires\=Fri, 31-Dec-1999 00:00:00 GMT;";
} # if expiration not set, expire at 12/31/1999
elsif ($expires == -1)
{
$expires = "";
}
else
{
$year += 1900;
$expires = "expires\=$days[$wday], $mday-$months[$mon]-$year $hour:$min:$seconds GMT; ";
}
if (! defined $domain) { $domain = $ENV{'SERVER_NAME'}; } #set domain of cookie.
if (! defined $path) { $path = "/"; } #set default path = "/"
if (! defined $secure) { $secure = "0"; }
my $key;
foreach $key (keys %$cookie)
{
$cookie->{$key} =~ s/ /+/g;
print "Set-Cookie: $key\=$cookie->{$key}; expires=$expires; path=$path; domain=$domain \n\n";
}
}