Stas Bekman <[EMAIL PROTECTED]> writes:

> James Taylor wrote:
> > I'm having difficulty getting my mod_perl scripts and then my
> > non-mod_perl scripts reading cookies between each other.  I have a
> > mod_perl TransHandler that sets a cookie via Apache::Cookie, and
> > then I have some scripts in my /cgi-bin that try and read the cookie
> > using basic CGI::Cookie.  It doesn't appear to be working
> > whatsoever, as the Apache::Cookie script can't read any of the
> > cookies set by CGI::Cookie and vice-versa.   I tried ditching
> > Apache::Cookie in the transhandler and using CGI::Cookie as well,
> > but still the two can't see each other.
> > Any ideas what would cause something like this?
>
> 
> You can't do it this way. Since when you try to retrieve the cookie
> from your cgi, it reads the cookies from $ENV{HTTP_COOKIE} ||
> $ENV{COOKIE}, whereas your TransHandler doesn't set those env-vars
> (one of the two), and that's what it should do. Moreover, most likely
> it should use $r->subprocess_env to do that, and not setting %ENV.

Amplififying on Stas's reply, there's a big difference between incoming 
(request) cookies and outgoing (response) cookies.  When you set 
(or bake) a cookie, it's _outgoing_, so you're ultimately creating 
something that will only appear in the *response* headers.  On the 
other hand, when these modules parse cookies, they're only looking 
at the *request* headers, since that's where the *incoming* cookies 
appear.

IOW, you shouldn't try to set/bake cookies as a means of passing
data from one handler to another one *inside the same request*.  
Cookies are a means of passing data between two different requests, 
and the module APIs reflect that.

-- 
Joe Schaefer


-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to