Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Re: Multiple Cookies with CGI::Application

by sedhed (Scribe)
on Jul 28, 2002 at 05:00 UTC ( [id://185808]=note: print w/replies, xml ) Need Help??


in reply to Re: Multiple Cookies with CGI::Application
in thread Multiple Cookies with CGI::Application

Okay Nomis52, I've done some testing on a local server, and it works for me, setting both cookies each time.

    Tested version info:
  • Apache 1.3.12
  • mod_perl 1.26
  • CGI 2.81
  • CGI::Application 2.5

I tried multiple cookies using CGI.pm directly, and I tried the same using CGI::Application, all under mod_perl, and under each scenario I get both cookies without issue. I know you didn't want to hear that :)

What happens when you try a very simple script like:

#!/usr/bin/perl use CGI::Application; my $a = new CGI::Application; my $c1 = $a->query->cookie(-name=>'userID', -value=>'test123', ); my $c2 = $a->query->cookie(-name=>'sessionID', -value=>'blahblahblah', ); $a->header_props(-cookie => [$c1,$c2]); $a->run;
C::A ought to give you a list of %ENV, one if which should be HTTP_COOKIE => 'userID=test123; sessionID=blahblahblah' in this case. Do you get that environment value okay, even when the cookies don't come through?

Anyway, I'm thinking maybe a version issue somewhere along the line.

Update: Below is the output from an HTTP session using the above code under mod_perl:

[admin@bart][~]$ telnet localhost 80 Trying 127.0.0.1... Connected to localhost (127.0.0.1). Escape character is '^]'. get /perl/test3.cgi HTTP/1.0 HTTP/1.1 200 OK Date: Sun, 28 Jul 2002 05:08:17 GMT Server: Apache/1.3.12 (Unix) (Red Hat/Linux) PHP/3.0.15 mod_perl/1.26 Set-Cookie: userID=test123; path=/ Set-Cookie: sessionID=blahblahblah; path=/ Connection: close Content-Type: text/html; charset=ISO-8859-1 <P> Query Parameters:<BR> <OL> </OL> <P> Query Environment:<BR> <OL> <LI> DOCUMENT_ROOT => '<B>/home/httpd/html</B>' <LI> GATEWAY_INTERFACE => '<B>CGI-Perl/1.1</B>' <LI> MOD_PERL => '<B>mod_perl/1.26</B>' <LI> PATH => '<B>/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin</B>' <LI> QUERY_STRING => '<B></B>' <LI> REMOTE_ADDR => '<B>127.0.0.1</B>' <LI> REMOTE_PORT => '<B>1357</B>' <LI> REQUEST_METHOD => '<B>get</B>' <LI> REQUEST_URI => '<B>/perl/test3.cgi</B>' <LI> SCRIPT_FILENAME => '<B>/home/httpd/perl/test3.cgi</B>' <LI> SCRIPT_NAME => '<B>/perl/test3.cgi</B>' <LI> SERVER_ADDR => '<B>127.0.0.1</B>' <LI> SERVER_ADMIN => '<B>webmaster@lithocraft.com</B>' <LI> SERVER_NAME => '<B>bart.lithocraft.com</B>' <LI> SERVER_PORT => '<B>80</B>' <LI> SERVER_PROTOCOL => '<B>HTTP/1.0</B>' <LI> SERVER_SIGNATURE => '<B><ADDRESS>Apache/1.3.12 Server at bart.lit +hocraft.com Port 80</ADDRESS> </B>' <LI> SERVER_SOFTWARE => '<B>Apache/1.3.12 (Unix) (Red Hat/Linux) PHP/ +3.0.15 mod_perl/1.26</B>' <LI> UNIQUE_ID => '<B>PUN8Qc9c3QYAAC5MELk</B>' </OL> Connection closed by foreign host.

cheers!

Replies are listed 'Best First'.
Re: Re: Re: Multiple Cookies with CGI::Application
by Nomis52 (Friar) on Jul 28, 2002 at 05:27 UTC

    Hmmm this doesn't look good, here's my output

    HTTP/1.1 200 OK
    Date: Sun, 28 Jul 2002 05:17:56 GMT
    Server: Apache-AdvancedExtranetServer/1.3.23 (Mandrake Linux/4mdk) mod_ssl/2.8.7 OpenSSL/0.9.6c PHP/4.1.2
    Content-Type: text/html; charset=ISO-8859-1
    Set-Cookie: sessionID=blahblahblah; path=/
    X-Cache: MISS from quigon.nomis52.com
    Transfer-Encoding: chunked
    
    

    If you reload it to see the cookies naturally only the last one is set

    <li> HTTP_COOKIE => '<b>sessionID=blahblahblah</b>'
    

    I tend to agree with you that this is an issue with my set-up, currently:

    • Apache 1.3.23
    • mod_perl 1.26
    • CGI 2.79
    • CGI::Application 2.4

    I'm going to give it a go on a debian box and see if thats any different.

      It works as expected on my Win2k, running ActivePerl 5.6.1
      Apache/1.3.24 and Apache/2.0.36 
      CGI::Application 2.4
      CGI 2.752
      
      My mod perl versions aren't relevant, since I didn't run this under mod perl (and it makes no difference).

      I would suggest you check your CGI module by attempting to use it's header method. If that doesn't produce the correct headers, then your CGI is to blame, and you should get a newer one (like 2.8).

      If it produces the correct headers, then something is wrong with your CGI::Application, and you should reinstall or upgrade it.

      If that doesn't help, well, then you have ghosts in your machine ( not good )

      ____________________________________________________
      ** The Third rule of perl club is a statement of fact: pod is sexy.

      I think this is a bug with mod_proxy, which affects apache 1.3.23 and 1.3.24. I had the same problem on my Mandrake box, and upgrading to 1.3.26 (from Cooker) solved the problem.

      See here for a discussion on this.

      -yogivan

Re: Re: Re: Multiple Cookies with CGI::Application
by Nomis52 (Friar) on Jul 28, 2002 at 07:25 UTC

    Well, I've tried it on a debian box and it works fine as expected. For what its worth:

    • Apache 1.3.26
    • mod_perl 1.26
    • CGI 2.752
    • CGI::Application 2.1

    Thanks for everyone's help

    Nomis52

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://185808]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-04-25 06:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found