note
sedhed
<p>Okay [Nomis52], I've done some testing on a local server, and it works for me, setting both cookies each time.
<ul>Tested version info:
<li>Apache 1.3.12
<li>mod_perl 1.26
<li>CGI 2.81
<li>CGI::Application 2.5
</ul>
<p>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 :)
<p>What happens when you try a very simple script like:
<code>
#!/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;
</code>
C::A ought to give you a list of %ENV, one if which should be <code>HTTP_COOKIE => 'userID=test123; sessionID=blahblahblah'</code> in this case. Do you get that environment value okay, even when the cookies don't come through?
<p>Anyway, I'm thinking maybe a version issue somewhere along the line.
<p><b>Update:</b> Below is the output from an HTTP session using the above code under mod_perl:
<code>
[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.lithocraft.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.
</code>
<p>cheers!
185744
185802