And it's not working. Specifically, sessions are not getting invalidated. I'm using the following code in my handler.pl file, taken from the article linked form masonhq:
# Get the incoming cookies my %cookies = parse CGI::Cookie($r->header_in('Cookie')); # Try to re-establish an existing session eval { tie %HTML::Mason::Commands::session, 'Apache::Session::DBI', ($cookies{'AF_SID'} ? $cookies{'AF_SID'}->value() : undef), { DataSource => $dbsource, UserName => $dbuser, Password => $dbpass }; }; # If we could not re-establish an existing # session, create a new session. if ( $@ ) { if ( $@ =~ m/^Object does not exist in the data store/ ) { tie %HTML::Mason::Commands::session, 'Apache::Session::DBI', undef, { DataSource => $dbsource, UserName => $dbuser, Password => $dbpass }; undef $cookies{'AF_SID'}; } } if ( !$cookies{'AF_SID'} ) { my $cookie = new CGI::Cookie(-name => 'AF_SID', -value => $HTML::Mason::Commands::session{_session_i +d}, -path => '/',); $r->header_out('Set-Cookie', => $cookie); } my $status = $ah->handle_request($r); untie %HTML::Mason::Commands::session; return $status;
The problem is it doesn't seem to be talking to the db -- once someone has sucessfully logged in on a particular child, $session{userid} *always* exists even if there's no corresponding row in the db sessions table.
I have to conclude there's something wrong with the way I'm doing it, but since I don't really *understand* how I'm doing it, I don't know what it is.
In reply to Session Problems by dstar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |