Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Listing Active CGI::Sessions

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


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
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-03-29 11:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found