Seite 1 von 1

Welche Member sind online?

Verfasst: 07.05.2006 11:45
von simon-1991-14
wie kann ich (außerhalb von phpbb) sehen, welche mitglieder online sind?

Verfasst: 07.05.2006 19:38
von simon-1991-14
weiß es denn keiner?

Verfasst: 07.05.2006 21:06
von Jan500
hi
<?php

mysql_connect('localhost', 'db_user', 'db_pass') or die("Keine Verbindung möglich: " . mysql_error());

mysql_select_db('datenbank');

$result = mysql_query("SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
FROM phpbb_users u, phpbb_sessions s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ".( time() - 300 ) . "
ORDER BY u.username ASC, s.session_ip ASC");

if (!$result) {
die('Daten konnten nicht abgerufen werden: ' . mysql_error());
}

$online_userlist = '';
$userlist_ary = array();
$userlist_visible = array();

$prev_user_id = 0;


while( $row = mysql_fetch_array($result) )
{
// User is logged in and therefor not a guest
if ( $row['session_logged_in'] )
{
// Skip multiple sessions for one user
if ( $row['user_id'] != $prev_user_id )
{
$style_color = '';
if ( $row['user_level'] == '1' )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#FF0000"';
}
else if ( $row['user_level'] == '2' )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#008000"';
}

if ( $row['user_allow_viewonline'] )
{
$user_online_link = "<a href=\"http://www.domain.tld/ordner/profile.php?mode=viewprofile&u=" . $row['user_id'] . "\"" . $style_color .">" . $row['username'] . "</a>";



$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
}

$prev_user_id = $row['user_id'];
}


}


if ( empty($online_userlist) )
{
$online_userlist = "Es sind keine registrierten User online";
}



?>
du musst noch ändern:
  • evtl localhost
  • db_user
  • db_pass
  • die datenbank, aufm server
  • die farben der admins bzw mod (im moment ist admin rot und mod grün) wenn du willst
  • http://www.domain.tld/ordner/ muss deiner domain und dem ordner angepasst werden, wo dein Forum liegt
$online_userlist ist die Variable, die die liste mit den Usern beinhaltet

Jan

Verfasst: 07.05.2006 21:58
von simon-1991-14
ui, danke!

Verfasst: 07.05.2006 22:12
von simon-1991-14
und wie kann ich sehen, wie viele gerade on sind?

Verfasst: 07.05.2006 22:21
von Jan500
<?php

mysql_connect('localhost', 'db_user', 'db_pass') or die("Keine Verbindung möglich: " . mysql_error());

mysql_select_db('datenbank');

$result = mysql_query("SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
FROM phpbb_users u, phpbb_sessions s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ".( time() - 300 ) . "
ORDER BY u.username ASC, s.session_ip ASC");

if (!$result) {
die('Daten konnten nicht abgerufen werden: ' . mysql_error());
}

$online_userlist = '';
$userlist_ary = array();
$userlist_visible = array();

$prev_user_id = 0;


while( $row = mysql_fetch_array($result) )
{
// User is logged in and therefor not a guest
if ( $row['session_logged_in'] )
{
// Skip multiple sessions for one user
if ( $row['user_id'] != $prev_user_id )
{
$style_color = '';
if ( $row['user_level'] == '1' )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#FF0000"';
}
else if ( $row['user_level'] == '2' )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#008000"';
}

if ( $row['user_allow_viewonline'] )
{
$user_online_link = "<a href=\"http://www.domain.tld/ordner/profile.ph ... profile&u=" . $row['user_id'] . "\"" . $style_color .">" . $row['username'] . "</a>";

$logged_visible_online++;

$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
else
{

$logged_hidden_online++;
}
}

$prev_user_id = $row['user_id'];
}
else
{
// Skip multiple sessions for one user
if ( $row['session_ip'] != $prev_session_ip )
{
$guests_online++;
}
}


}


if ( empty($online_userlist) )
{
$online_userlist = "Es sind keine registrierten User online";
}

$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;


if ( $total_online_users == 0 )
{
$l_t_user_s = 'Insgesamt sind <b>0</b> Benutzer online: ';
}
else if ( $total_online_users == 1 )
{
$l_t_user_s = 'Insgesamt ist <b>ein</b> Benutzer online: ';
}
else
{
$l_t_user_s = 'Insgesamt sind <b>%d</b> Benutzer online: ';
}

if ( $logged_visible_online == 0 )
{
$l_r_user_s = 'Kein registrierter, ';
}
else if ( $logged_visible_online == 1 )
{
$l_r_user_s = 'Ein registrierter, ';
}
else
{
$l_r_user_s = '%d registrierte, ';
}

if ( $logged_hidden_online == 0 )
{
$l_h_user_s = 'kein versteckter und ';
}
else if ( $logged_hidden_online == 1 )
{
$l_h_user_s = 'ein versteckter und ';
}
else
{
$l_h_user_s = '%d versteckte und ';
}

if ( $guests_online == 0 )
{
$l_g_user_s = 'kein Gast.';
}
else if ( $guests_online == 1 )
{
$l_g_user_s = 'ein Gast.';
}
else
{
$l_g_user_s = '%d Gäste.';
}

$l_online_users = sprintf($l_t_user_s, $total_online_users);
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
$l_online_users .= sprintf($l_g_user_s, $guests_online);



?>
$l_online_users ist die variable für die anzeige wieviele da sind

Jan