RE: Apache::Cookie
Okay, I'm obviously no expert but I see a problem ... I think? : my $cookie = Apache::Cookie->fetch; my $ref_cookie = ref $cookie; returns 'HASH' but my $session = $cookies->{'session'}->value; my $type = ref @session; doesn't return anything, '' or (undef?). strange? However: my @session = $cookies->{'session'}->value; returns the (almost) desired result as pairs and as they were originally inserted from the standard CGI cookie. so i thought it was acceptable to convert to a hash, knowing the list values are in pairs: my %hash = $cookies->{'session'}->value; will probably throw a warning or even an error without the defined statement, but it gets past the immediate issue. kirk >-Original Message- >From: Perrin Harkins [mailto:[EMAIL PROTECTED] >Sent: Tuesday, June 03, 2003 10:57 AM >To: [EMAIL PROTECTED] >Cc: Stas Bekman; modperl >Subject: RE: Apache::Cookie > > >On Tue, 2003-06-03 at 13:08, cap wrote: >> it works just fine in my app, and 'just fine' maybe all that i need. > >The point is, it shouldn't work. You should not be getting a hash. >What should work is this: > >my $session = defined $cookies->{'session'} ? >$cookies->{'session'}->value : undef; > >The larger issue is fixing the Apache::Cookie docs. I would attempt to >patch it if I understood what it's doing. Does anyone know what the API >is returning when you call fetch()? An Apache::Table? Some other kind >of object? It looks pretty bizarre to me, and it certainly isn't doing >what the docs show. > >- Perrin >
RE: Apache::Cookie
it works just fine in my app, and 'just fine' maybe all that i need. do you have a better solution, or are you just pointing out the error? >-Original Message- >From: Stas Bekman [mailto:[EMAIL PROTECTED] >Sent: Monday, June 02, 2003 10:08 PM >To: [EMAIL PROTECTED] >Cc: Perrin Harkins; modperl >Subject: Re: Apache::Cookie > > >cap wrote: >> Well, here's what I have to do to get direct access to values from the >> original cookie hash: >> >> my $cookies = Apache::Cookie->fetch; >> my %hash = defined $cookies->{'session'} ? $cookies->{'session'}->value : >> undef; >> >> Strange. Thanks for the lead. > >That's a bogus code. Obviously you are running without warnings >mode on. Add: > >use warnings; > >and you will see why it is bogus. Perhaps your cookie was always >valid so you >didn't notice it. Howerer: > >perl -lwe '%h = undef' >Name "main::h" used only once: possible typo at -e line 1. >Odd number of elements in hash assignment at -e line 1. >Use of uninitialized value in list assignment at -e line 1. > > > > >>>-Original Message- >>>From: Perrin Harkins [mailto:[EMAIL PROTECTED] >>>Sent: Monday, June 02, 2003 2:41 PM >>>To: [EMAIL PROTECTED] >>>Cc: modperl >>>Subject: Re: Apache::Cookie >>> >>> >>>On Mon, 2003-06-02 at 09:05, cap wrote: >>> >>>>i have an application that uses CGI and sets the cookie values >>> >>>as a hashref. >>> >>>>im then attempting to retreive the values with Apache::Cookie with: >>>> >>>>$cookies = Apache::Cookie->fetch; >>>> >>>>$ccokies is a hashref so i should be able to get the individual >>> >>>values with: >>> >>>>$cookies->{uid}; >>>> >>>>right? however, this doesn't appear to work. >>> >>>I see the problem. There is mistake in the Apache::Cookie >>>documentation, but the correct way to do this is shown in the mod_perl >>>guide: >>>http://perl.apache.org/docs/1.0/guide/porting.html#Converting_to_us >>>e_Apache_Perl_Modules >>> >>>Change your last line to this: >>> >>>my $uid = defined $cookies->{'uid'} ? $cookies->{'uid'}->value() : >>>undef; >>> >>>- Perrin >>> >> > > >-- > > >__ >Stas BekmanJAm_pH --> Just Another mod_perl Hacker >http://stason.org/ mod_perl Guide ---> http://perl.apache.org >mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com >http://modperlbook.org http://apache.org http://ticketmaster.com > >
RE: Apache::Cookie
Well, here's what I have to do to get direct access to values from the original cookie hash: my $cookies = Apache::Cookie->fetch; my %hash = defined $cookies->{'session'} ? $cookies->{'session'}->value : undef; Strange. Thanks for the lead. >-Original Message- >From: Perrin Harkins [mailto:[EMAIL PROTECTED] >Sent: Monday, June 02, 2003 2:41 PM >To: [EMAIL PROTECTED] >Cc: modperl >Subject: Re: Apache::Cookie > > >On Mon, 2003-06-02 at 09:05, cap wrote: >> i have an application that uses CGI and sets the cookie values >as a hashref. >> im then attempting to retreive the values with Apache::Cookie with: >> >> $cookies = Apache::Cookie->fetch; >> >> $ccokies is a hashref so i should be able to get the individual >values with: >> >> $cookies->{uid}; >> >> right? however, this doesn't appear to work. > >I see the problem. There is mistake in the Apache::Cookie >documentation, but the correct way to do this is shown in the mod_perl >guide: >http://perl.apache.org/docs/1.0/guide/porting.html#Converting_to_us >e_Apache_Perl_Modules > >Change your last line to this: > >my $uid = defined $cookies->{'uid'} ? $cookies->{'uid'}->value() : >undef; > >- Perrin >
RE: Apache::Cookie
Yes, but: use Apache::Cookie; my $cookie = Apache::Cookie->fetch; my @values = $cookie->value; returns errors. >-Original Message- >From: Jason Galea [mailto:[EMAIL PROTECTED] >Sent: Monday, June 02, 2003 5:56 AM >To: [EMAIL PROTECTED] >Cc: modperl >Subject: Re: Apache::Cookie > > >Have you consulted the documentation? > >http://search.cpan.org/author/JIMW/libapreq-1.1/Cookie/Cookie.pm#value > > >cap wrote: >> i have an application that uses CGI and sets the cookie values >as a hashref. >> im then attempting to retreive the values with Apache::Cookie with: >> >> $cookies = Apache::Cookie->fetch; >> >> $ccokies is a hashref so i should be able to get the individual >values with: >> >> $cookies->{uid}; >> >> right? however, this doesn't appear to work. >> >> >> >> > >
Apache::Cookie
i have an application that uses CGI and sets the cookie values as a hashref. im then attempting to retreive the values with Apache::Cookie with: $cookies = Apache::Cookie->fetch; $ccokies is a hashref so i should be able to get the individual values with: $cookies->{uid}; right? however, this doesn't appear to work.