Some browsers don't accept cookies sent allong with a redirect header.
A simple workaround is to leave your cookie in the header, but move the
redirect to a META HTTP-EQUIV tag in a blank HTML document.
I'm not sure if IE 6.0 suffers from this but I suspect that this is your
problem. So this isn't really a mod_perl problem, but likely a browser
problem.
Also, if you want to see exactly what headers your apache server is
sending out, or headers your client is sending in, have a look at
Apache::DumpHeaders. It saves putting those warn statements in your
code.
Cees
On Sun, 2002-03-24 at 14:44, Jesse and Rebecca Stay wrote:
> Ok - I got rid of the Apache::Cookie stuff, and am now doing things manually,
> but it still doesn't generate a cookie in IE. It still works in Netscape. I
> get a redirect, but no cookie. Here is my code:
>
> my $r = Apache->request;
>
> $r->content_type('text/html');
> $r->err_headers_out->add('Set-Cookie' => 'userSession=test;
> domain=.hainesfamily.org; path=/; expires=Mon, 25-Mar-2002 03:30:43 GMT');
> $r->headers_out->add(Location => $redir);
> $r->status(REDIRECT);
> $r->send_http_header;
>
> my $headers_out = $r->headers_out;
> foreach (keys %$headers_out) {
> warn "$_=$headers_out->{$_}";
> }
>
> return OK;
>
> The warn produces the following:
>
> Set-Cookie=userSession=test; domain=.domain.org; path=/; expires=Mon,
> 25-Mar-2002 03:30:43 GMT at /path/to/script.pm line 326.
> Location=/r/common/loginWelcome at /path/to/script.pm line 326.
> Connection=close at /path/to/script.pm line 326.
> Transfer-Encoding=chunked at /path/to/script.pm line 326.
> Content-Type=text/html at /path/to/script.pm line 326.
>
> Am I doing something wrong???
>
> -Jesse Stay
>
> On Saturday 23 March 2002 06:43 pm, Eric Frazier wrote:
> > Strong suggestion. Look at an existing cookie that works in IE whatever,
> > copy it, then look at the header that Apache::Cookie is making.
> > This oop cookie crap really bugs me since a cookie is just a stupid header
> > line, not that big of a deal to parse, or write by hand.
> > Abscraction is for things that make good objects and that are HARD, cookies
> > in my opinon don't fit into that category.
> > I strongly bet it has to do with the expire date, also look at the docs,
> > and the code itself under the expires sub. I haven't done e com crap for a
> > while now, but I had lots of trouble getting IE to get it right. Remember
> > Netscape invented the cookie, then IE had to go and tweak with it.
> >
> >
> > Eric
> >
> > At 09:21 PM 3/23/02 -0500, Jesse and Rebecca Stay wrote:
> > >I guess in particular, does anyone know of any known issues with
> > >Apache::Cookie and IE6.0 (or any other versions)?
> > >
> > >On Saturday 23 March 2002 07:09 pm, Jesse and Rebecca Stay wrote:
> > >> Here is the code I use (in this particular case it is being used with a
> > >> redirect, but it doesn't work in any case.):
> > >>
> > >>
> > >> my $cookieContent = Apache::Cookie->new(
> > >> $r,
> > >> -name => 'userSession',
> > >> -value => $cookieValue,
> > >> -expires => '+365d');
> > >>
> > >> $cookieContent->bake();
> > >>
> > >> $r->headers_out->set(Location => $redir);
> > >> $r->status(REDIRECT);
> > >> $r->send_http_header;
> > >> return OK;
> > >>
> > >> I tried expires => '+1Y', but that didn't work either. Adding the
> > >> domain doesn't do anything either.
> > >>
> > >> On Saturday 23 March 2002 06:44 pm, Frank Wiles wrote:
> > >> > On Sat, 23 Mar 2002 18:52:14 -0500 Jesse and Rebecca Stay
> > >>
> > >> <[EMAIL PROTECTED]> wrote:
> > >> > > Has anyone had any issues in getting cookies to work with IE using
> > >> > > mod_perl? I have tried using both CGI::Cookie and Apache::Cookie,
> > >> > > and in both instances it works just fine under Netscape, but on IE
> > >> > > it doesn't even try to set the cookie. Any ideas?
> > >> >
> > >> > What are you expire times on your cookies? We ran into a situation
> > >> > where I work that all of the Windows machines were in the wrong time
> > >> > zone and with a 2 hour expire, IE would not set the cookie because it
> > >> > thought it was already expired. Netscape would however set the cookie
> > >> > anyway.
> > >> >
> > >> > This may not be your problem, but it may be something to think
> > >> > about.
> > >> >
> > >> > ---------------------------------
> > >> > Frank Wiles <[EMAIL PROTECTED]>
> > >> > http://frank.wiles.org
> > >> > ---------------------------------
> >
> > http://www.kwinternet.com/eric
> > (250) 655 - 9513 (PST Time Zone)