diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-03-01 16:39:56 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-03-01 16:39:56 +0000 |
commit | 08fc672b8bd059d4eb07d4723499374971c8b6de (patch) | |
tree | 348258409e54f9acb8bf2e6ccc3ce9dddb764bd2 /phpBB | |
parent | a54b0167906f06e69b8697b2c25da8e7377878f2 (diff) | |
download | forums-08fc672b8bd059d4eb07d4723499374971c8b6de.tar forums-08fc672b8bd059d4eb07d4723499374971c8b6de.tar.gz forums-08fc672b8bd059d4eb07d4723499374971c8b6de.tar.bz2 forums-08fc672b8bd059d4eb07d4723499374971c8b6de.tar.xz forums-08fc672b8bd059d4eb07d4723499374971c8b6de.zip |
Ignore duplicate IP's for guest counts ... keep in mind this swings 100% the other way from keeping them all, you'll not count some users.
git-svn-id: file:///svn/phpbb/trunk@2236 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/viewonline.php | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php index f3c050b381..b888165690 100644 --- a/phpBB/viewonline.php +++ b/phpBB/viewonline.php @@ -93,12 +93,12 @@ $is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata); // // Get user list // -$sql = "SELECT u.user_id, u.username, u.user_session_time, u.user_session_page, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page +$sql = "SELECT u.user_id, u.username, u.user_session_time, u.user_session_page, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip FROM " . USERS_TABLE . " u, " . SESSIONS_TABLE . " s WHERE u.user_id = s.session_user_id AND ( u.user_session_time >= " . ( time() - 300 ) . " OR s.session_time >= " . ( time() - 300 ) . " ) - ORDER BY u.username ASC, u.user_session_time DESC, s.session_time DESC"; + ORDER BY u.username ASC, s.session_ip"; if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Couldn't obtain regd user/online information.", "", __LINE__, __FILE__, $sql); @@ -113,6 +113,7 @@ if( $row = $db->sql_fetchrow($result) ) $reg_counter = 0; $guest_counter = 0; $prev_user = 0; + $prev_ip = 0; do { @@ -159,15 +160,20 @@ if( $row = $db->sql_fetchrow($result) ) } else { - $view_online = 1; - $guest_users++; - - $username = $lang['Guest']; - $last_update = $row['session_time']; - $user_page = $row['session_page']; + if ( $row['session_ip'] != $prev_ip ) + { + $view_online = 1; + $guest_users++; + + $username = $lang['Guest']; + $last_update = $row['session_time']; + $user_page = $row['session_page']; - $which_counter = 'guest_counter'; - $which_row = 'guest_user_row'; + $which_counter = 'guest_counter'; + $which_row = 'guest_user_row'; + + $prev_ip = $row['session_ip']; + } } if ( $view_online ) |