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

Apache::Session

by wiwo (Initiate)
on Mar 21, 2002 at 20:47 UTC ( #153418=perlquestion: print w/replies, xml ) Need Help??
wiwo has asked for the wisdom of the Perl Monks concerning the following question:

hi y'all, I am trying to get Apache::Session::MySQL to work with the various perl "pages" of my site. I only want to build the tied session object in one place though and reference, mainly because it is 11 lines of identical code and also because I might need to change the database information one day.

Can anyone point me to an example where they have built the session hash in one package and referenced it in multiple pages?

When I do it, either the stuff I added to the session isn't available in the subsequent page, or the first page "locks" the session and the second page gets stuck trying to grab it, and never returns...

Replies are listed 'Best First'.
Re: Apache::Session
by drewbie (Chaplain) on Mar 21, 2002 at 20:56 UTC
    Make a module and do everything there. There are some examples in the Apache::Session docs. You did read them didn't you. ;-) This code is untested of course, but you could use something like:
    package MySession; use strict; use Apache::Session::Whatever; sub new { my $self = bless( {}, shift }; $self->init(); return $self; } sub init { my $self = shift; my %session; tie %session, Apache::Session::Whatever, undef; $self->{session} = \%session; return $self->{session}; } sub get_session { my $self = shift; return $self->{session}; } sub close { my $self = shift; # Now properly untie the hash using the right method tied($self->{session})->close; untie($self->{session}); } sub DESTROY { my $self = shift; $self->close(); }
    Then in your app code just use the module and create a new object.
    use MySession; my $session = MySession->new()->get_session(); $session->{foo} = "bar"; $sesobj->close();

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://153418]
Approved by root
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (2)
As of 2018-07-18 04:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (383 votes). Check out past polls.

    Notices?