> This works fine for the first access. Subsequently, I wipe out the
> backend database to see if a new session is correctly created. A new
> session is created as expected, but the problem is that the new cookie
> does not seem to stick to the browser. I've verified that this doesn't
...
> Is there any known gotchas for this type of thing? Or am I missing
> something?
Could this be a redirection problem? One gotcha that I learned was that:
my $method = ($is_redirection) ? 'err_headers_out' : 'headers_out';
$r->$method->add("Set-Cookie" => $cookie->as_string);
I don't know if this is similar to what I did, but here you go anyhow:
sub hash_to_cookies {
my ($r, $hashref) = @_;
my $is_redirection = (@_) ? shift : undef;
my $method = ($is_redirection) ? 'err_headers_out' : 'headers_out';
# From Apache::Cookie documentation:
# $cookie->bake is same as $r->err_headers_out->add("Set-Cookie" =>
$cookie->as_string);
# Guide: You should use err_headers_out() and not headers_out()
# when you want to send cookies in the REDIRECT response.
my ($cookie);
foreach my $key (keys %{$hashref}) {
$cookie = Apache::Cookie->new( $r,
-name => $key,
-value => $hashref->{$key},
-path => '/');
$r->$method->add("Set-Cookie" => $cookie->as_string);
}
}
sub hash_to_cookies_OK {hash_to_cookies(@_);}
sub hash_to_cookies_REDIRECT {hash_to_cookies(@_, 1);}
--
Kari Nurmela,
[EMAIL PROTECTED], (02) 333 8847 / (0400) 786 547