Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Listing Active CGI::Sessions

by antirice (Priest)
on Sep 05, 2004 at 14:44 UTC ( [id://388640]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Listing Active CGI::Sessions

If you're using CGI::Session::MySQL, you can alter it to put the expiration time in a column.

sub store { my ($self, $sid, $options, $data) = @_; my $dbh = $self->MySQL_dbh($options); my $lck_status = $dbh->selectrow_array(qq|SELECT GET_LOCK("$sid", +10)|); unless ( $lck_status == 1 ) { $self->error("Couldn't acquire lock on id '$sid'. Lock status: + $lck_status"); return undef; } $dbh->do(qq|REPLACE INTO $TABLE_NAME (id, expires, a_session) VALU +ES(?,FROM_UNIXTIME(?),?)|, undef, $sid, $self->expire(), $self->freeze($data)); return $dbh->selectrow_array(qq|SELECT RELEASE_LOCK("$sid")|); }

And the schema just needs to be updated:

CREATE TABLE sessions ( id CHAR(32) NOT NULL UNIQUE, expires datetime, a_session TEXT NOT NULL );

Now in order to find all active sessions, run the query:

select id from sessions where expires <= NOW() or expires is null

...or something like that ;-P

antirice    
The first rule of Perl club is - use Perl
The
ith rule of Perl club is - follow rule i - 1 for i > 1

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://388640]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.