Okay, I actually found out how to list the users, but you have the following
line of code:

define('SITE_ONLINE_EXPIRE', 900);

What is the 900?  Is that 900 seconds?

Thanks,

Matt
http://sweetphp.com

"Matt Palermo" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> This looks like a good solution.  What is the best way to list the current
> users, since the sesssionData seems to be serialized in the db or
something?
> I just want to list out all the users from the db.
>
> Thanks,
>
> Matt
> http://sweetphp.com
>
>
> "Greg Donald" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> > On Fri, 2 Jul 2004 01:13:14 -0400, Matt Palermo <[EMAIL PROTECTED]>
> wrote:
> > >
> > > Is it possible to make a table of all logged in users session ids and
> then
> > > check to see if the session still exists every couple minutes?  So
every
> > > minute or two, it would go through the table and for each record it
> would
> > > get the session id, then check that session id to see if it's still in
> > > existance.  Is this possible to do?
> >
> > This is simple to accomplish if you use database managed PHP sessions.
> >  You can override the default PHP session handling functions with
> > session_set_save_handler() then you will know what users are logged in
> > by what sessions are still active.  Here's how I do it:
> >
> > My sessions.php that I require in all other scripts on the site:
> >
> > <?php
> >
> > if(ini_get('session.use_trans_sid')==0){
> >     ini_set("session.use_trans_sid", 1);
> > }
> >
> > $sessionDbHandler = '';
> >
> > function sessionOpen($save_path, $session_name){
> > global $sessionDbHandler;
> > if(! $sessionDbHandler = mysql_pconnect(DB_HOST, DB_USER, DB_PASS)){
> > die("Can't get sessionDbHandler: ".mysql_error());
> > }
> > return true;
> > }
> >
> > function sessionClose(){
> > return true;
> > }
> >
> > function sessionRead($key){
> > $sql = "
> > select
> > sessionData
> > from
> > ".TB_USER_SESSIONS."
> > where
> > sessionID = '$key'
> > and
> > sessionExpire > UNIX_TIMESTAMP()
> > ";
> > $query = mysql_query($sql);
> > if(mysql_num_rows($query)){
> > return mysql_result($query, 0, "sessionData");
> > }
> > return false;
> > }
> >
> > function sessionWrite($key, $val){
> > $value = addslashes($val);
> > $sql = "
> > replace into ".TB_USER_SESSIONS." (
> > sessionID,
> > sessionData,
> > sessionExpire
> > ) values (
> > '$key',
> > '$value',
> > UNIX_TIMESTAMP() + ".SITE_ONLINE_EXPIRE."
> > )
> > ";
> > return mysql_query($sql);
> > }
> >
> > function sessionDestroy($key){
> > $sql = "
> > delete from
> > ".TB_USER_SESSIONS."
> > where
> > sessionID = '$key'
> > ";
> > return mysql_query($sql);
> > }
> >
> > function sessionGarbageCollection(){
> > $sql = "
> > delete from
> > ".TB_USER_SESSIONS."
> > where
> > sessionExpire < UNIX_TIMESTAMP()
> > ";
> > $query = mysql_query($sql);
> > return sqlAffectedRows();
> > }
> >
> > session_set_save_handler("sessionOpen", "sessionClose",
> > "sessionRead", "sessionWrite", "sessionDestroy",
> > "sessionGarbageCollection");
> > session_start();
> >
> > ?>
> >
> > Some config.php variables:
> > define('DB_HOST', 'localhost');
> > define('DB_DB', 'db_name');
> > define('DB_USER', 'db_user');
> > define('DB_PASS', 'db_pass');
> > define('TB_USER_SESSIONS', 'userSessions');
> > define('SITE_ONLINE_EXPIRE', 900);
> >
> > The table structure for userSessions looks like this:
> >
> > CREATE TABLE `userSessions` (
> >   `sessionID` varchar(32) NOT NULL default '',
> >   `sessionData` text NOT NULL,
> >   `sessionExpire` int(10) unsigned NOT NULL default '0',
> >   PRIMARY KEY  (`sessionID`)
> > ) TYPE=MyISAM;
> >
> > When a user logs in you are probably already setting some kind of
> > userID or userName, so make that a session variable if it is not
> > already.  Then it's just a matter of listing the userNames or userIDs
> > out of the userSessions table.
> >
> > You might want to force session garbage collection at the top of each
> > script by calling sessionGarbageCollection().  That will make the
> > username listings more realtime.
> >
> >
> > --
> > Greg Donald
> > http://destiney.com/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to