diff --git a/phpBB/includes/page_header.php b/phpBB/includes/page_header.php
index e05930804e..fb1bd537ab 100644
--- a/phpBB/includes/page_header.php
+++ b/phpBB/includes/page_header.php
@@ -89,12 +89,11 @@ $s_last_visit = ( $userdata['session_logged_in'] ) ? create_date($board_config['
// Get basic (usernames + totals) online
// situation
//
-$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip, count(*) as online_count
+$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, s.session_logged_in, s.session_ip
FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
WHERE u.user_id = s.session_user_id
AND ( s.session_time >= ".( time() - 300 ) . "
OR u.user_session_time >= " . ( time() - 300 ) . " )
- GROUP BY u.user_id
ORDER BY u.username ASC";
$result = $db->sql_query($sql);
if(!$result)
@@ -107,31 +106,38 @@ $userlist_visible = array();
$logged_visible_online = 0;
$logged_hidden_online = 0;
$guests_online = 0;
+$prev_user_id = 0;
while( $row = $db->sql_fetchrow($result) )
{
+ // User is logged in and therefor not a guest
if( $row['session_logged_in'] )
{
- if( $row['user_allow_viewonline'] )
+ // Skip multiple sessions for one user
+ if( $row['user_id'] != $prev_user_id )
{
- $user_online_link = "" . $row['username'] . "";
- $logged_visible_online++;
- }
- else
- {
- $user_online_link = "" . $row['username'] . "";
- $logged_hidden_online++;
- }
-
- if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
- {
- $online_userlist .= ($online_userlist != "") ? ", " . $user_online_link : $user_online_link;
+ if( $row['user_allow_viewonline'] )
+ {
+ $user_online_link = "" . $row['username'] . "";
+ $logged_visible_online++;
+ }
+ else
+ {
+ $user_online_link = "" . $row['username'] . "";
+ $logged_hidden_online++;
+ }
+
+ if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
+ {
+ $online_userlist .= ($online_userlist != "") ? ", " . $user_online_link : $user_online_link;
+ }
}
}
else
{
- $guests_online += $row['online_count'];
+ $guests_online++;
}
+ $prev_user_id = $row['user_id'];
}
$online_userlist = $lang['Registered_users'] . " " . $online_userlist;