Thanks for the advice.
I have now moved the session creation code to after the validation checking on the params that i am giving to the session.
I was already using
use strict;
and have added
use warnings;
I have also changed the $query variable to $q so that it has the value $q = new CGI, created earlier as suggested by dorward. So the code reads as
if($ENV{REQUEST_METHOD} eq 'POST')
{
$q = new CGI;
$username = $q->param('user_name');
$pword = $q->pword'pwd');
}
#####
validate username and pword
#####
my $cgi;
#Create a new session
$session = new CGI::Session("driver:File", undef, {Directory=>
+'./tmp/sessions'});
#Allow cgi-session read the cookie at the next reques
$cookie = $q->cookie( -name => $session->name,
-value => $session->id );
print $q->header( -cookie=>$cookie);
$name = $cgi->param($username);
$session->param($username, $name);
Should the value for $cgi at:
$name = $cgi->param($username);
be $q as well or rather
my $cgi = new CGI? Currently i have it defined at the beginning of the script as
my $cgi;
It is not causing an issue as at the moment i am still getting the error
"Can't call method "cookie" on an undefined value at"
Again i would really appreciate your help and suggestions with this problem
thanks