Thanks for the help, I have now figured out how to get around the problem. I figured it out while testing with CGI::Simple. While using CGI::Simple did work, I found out that CGI.pm also works fine if you pass the CGI object into the creation of the CGI::Session object.
Before
my $session = CGI::Session->new(undef, undef, {Directory=>'e:\tmp'});
After
my $session = CGI::Session->new(undef, $cgi, {Directory=>'e:\tmp'});
When using the new code, my form data is always available in my CGI object and my CGI::Session object.
Thanks again! (Complete testing code below)
use strict;
use warnings;
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use CGI::Session ( '-ip_match' );
my $cgi = CGI->new();
my @array = $cgi->param();
print "CGI Form Data-->", "@array ", $cgi->param("environment"), "<br>
+";
print $cgi->Dump;
my $session = CGI::Session->new(undef, $cgi, {Directory=>'e:\tmp'});
print $cgi->escapeHTML( Data::Dumper::Dumper( $cgi ) ), "<br><br><br>"
+;
print $cgi->escapeHTML( Data::Dumper::Dumper( $session ) ), "<br>";
print <<HTML_BLOCK;
<body>
<form name='loginform' method='post' action='1.pl'>
<input type='hidden' name='form' value='login'>
<table>
<tr>
<td> UserName: </td>
<td> <input type='text' name='username'> <
+/td>
</tr>
<tr>
<td> Password: </td>
<td> <input type='password' name='password
+'> </td>
</tr>
<tr>
<td> Environment: </td>
<td>
<select size=1 name='environment'>
<option value="env1">env1</option>
<option value="env2">env2</option>
</select>
</td>
</tr>
<tr>
<td colspan=2 style='text-align=center'>
<input type='submit' name='submit' val
+ue='Submit'>
<input type='reset' name='reset' value
+='Reset'>
</td>
</tr>
</table>
</form>
</body>
HTML_BLOCK
|