Seite 2 von 3
Verfasst: 04.01.2005 16:17
von Toreador
aus Deinem Link bin ich leider nicht schlau geworden...
könntest Du bitte beschreiben, was denn da der "dicke Fehler" ist?
Danke,
Tory
Verfasst: 04.01.2005 20:21
von Nico Haase
mittlerweile wurde ja leider der zugriff auf die domain gesperrt, ich erinnere mich aber dunkel, dass die seite nur fehler ausgespuckt hat
Verfasst: 05.01.2005 00:23
von Toreador
hm, okay, hilft mir nur auch nicht wirklich weiter ;-)
denn bei mir hab ich das Problem, dass die Online-Anzeige auf der Index-Seite zwar reibungslos funktioniert, aber die viewonline.php tut's irgendwie nicht richtig, scheint mir...
wirkt sich wie folgt aus:
auf der Indexseite: null Probleme
im Admin-Panel (Adminindex): null Probleme
die viewonline.php: jeder User sieht dort nur sich selbst
auf der viewforum-Seite: da sollte stehen, welche registrierten User sich gerade in diesem Forum befinden, das funzt nur nach Lust und Laune...
hab das Aktualisierungsintervall für die Online-Anzeige (so wie es auf der Indexseite steht) von 5 min auf ... *überleg* ... 5 Sek. runtergeschraubt.
desweiteren hab ich einen Mod eingebaut für online/offline/hidden-Anzeige, der seinerseits reibungslos funktioniert...
da ich bislang nicht wirklich einen brauchbaren Tip gefunden habe (und ich hab hunderte von Themen in diese Richtung gehen gefunden und gelesen), hab ich mich kurzerhand entschieden, den Aufruf der viewonline.php einzuschränken (Link auf Indexseite entfernt) und den Rest ignoriert ;-)
nun dacht ich, dass da vielleicht in version 2.08 ein Bug in der viewonline.php drinsteckt, den ich nun mit Deiner Info ausbügeln könnte...
aber Dein Hinweis ging da wohl in eine ganz andere Richtung, scheint mir.
dennoch danke.
vielleicht fällt ja trotzdem noch jemandem irgendetwas zu meinem kleinen Problemchen ein ;-)
Verfasst: 06.01.2005 08:18
von Nico Haase
hast du die originale viewonline.php auf dem server liegen? normalerweise zeigt die auf der index.php datenmäßig dasselbe wie auf der viewonline.php - also bitte letztere mal verlinken
Verfasst: 09.01.2005 13:30
von Toreador
Nico Haase hat geschrieben:hast du die originale viewonline.php auf dem server liegen? normalerweise zeigt die auf der index.php datenmäßig dasselbe wie auf der viewonline.php - also bitte letztere mal verlinken
öhm... weiß gar nicht mehr so genau ob die noch ganz original ist...
hier mal der Inhalt der viewonline:
Code: Alles auswählen
<?php
/***************************************************************************
* viewonline.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* $Id: viewonline.php,v 1.54.2.2 2002/12/02 10:53:42 bartvb Exp $
*
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_VIEWONLINE);
init_userprefs($userdata);
//
// End session management
//
//
// Output page header and load viewonline template
//
$page_title = $lang['Who_is_Online'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'viewonline_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);
$template->assign_vars(array(
'L_WHOSONLINE' => $lang['Who_is_online'],
'L_ONLINE_EXPLAIN' => $lang['Online_explain'],
'L_USERNAME' => $lang['Username'],
'L_FORUM_LOCATION' => $lang['Forum_Location'],
'L_LAST_UPDATE' => $lang['Last_updated'])
);
//
// Forum info
//
$sql = "SELECT forum_name, forum_id
FROM " . FORUMS_TABLE;
if ( $result = $db->sql_query($sql) )
{
while( $row = $db->sql_fetchrow($result) )
{
$forum_data[$row['forum_id']] = $row['forum_name'];
}
}
else
{
message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql);
}
//
// Get auth data
//
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
//
// Get user list
//
$sql = "SELECT u.user_id, u.username, 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 s.session_time >= ".( time() - 5 ) . "
ORDER BY u.username ASC, s.session_ip ASC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
}
$guest_users = 0;
$registered_users = 0;
$hidden_users = 0;
$reg_counter = 0;
$guest_counter = 0;
$prev_user = 0;
$prev_ip = '';
while ( $row = $db->sql_fetchrow($result) )
{
$view_online = false;
if ( $row['session_logged_in'] )
{
$user_id = $row['user_id'];
if ( $user_id != $prev_user )
{
$username = $row['username'];
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$username = '<b style="color:#' . $theme['fontcolor3'] . '">' . $username . '</b>';
}
else if ( $row['user_level'] == MOD )
{
$username = '<b style="color:#' . $theme['fontcolor2'] . '">' . $username . '</b>';
}
if ( !$row['user_allow_viewonline'] )
{
$view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
$hidden_users++;
$username = '<i>' . $username . '</i>';
}
else
{
$view_online = true;
$registered_users++;
}
$which_counter = 'reg_counter';
$which_row = 'reg_user_row';
$prev_user = $user_id;
}
}
else
{
if ( $row['session_ip'] != $prev_ip )
{
$username = $lang['Guest'];
$view_online = true;
$guest_users++;
$which_counter = 'guest_counter';
$which_row = 'guest_user_row';
}
}
$prev_ip = $row['session_ip'];
if ( $view_online )
{
if ( $row['session_page'] < 1 || !$is_auth_ary[$row['session_page']]['auth_view'] )
{
switch( $row['session_page'] )
{
case PAGE_INDEX:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx";
break;
case PAGE_POSTING:
$location = $lang['Posting_message'];
$location_url = "index.$phpEx";
break;
case PAGE_LOGIN:
$location = $lang['Logging_on'];
$location_url = "index.$phpEx";
break;
case PAGE_SEARCH:
$location = $lang['Searching_forums'];
$location_url = "search.$phpEx";
break;
case PAGE_PROFILE:
$location = $lang['Viewing_profile'];
$location_url = "index.$phpEx";
break;
case PAGE_VIEWONLINE:
$location = $lang['Viewing_online'];
$location_url = "viewonline.$phpEx";
break;
case PAGE_VIEWMEMBERS:
$location = $lang['Viewing_member_list'];
$location_url = "memberlist.$phpEx";
break;
case PAGE_PRIVMSGS:
$location = $lang['Viewing_priv_msgs'];
$location_url = "privmsg.$phpEx";
break;
case PAGE_FAQ:
$location = $lang['Viewing_FAQ'];
$location_url = "faq.$phpEx";
break;
default:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx";
}
}
else
{
$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
$location = $forum_data[$row['session_page']];
}
$row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars("$which_row", array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'USERNAME' => $username,
'LASTUPDATE' => create_date($board_config['default_dateformat'], $row['session_time'], $board_config['board_timezone']),
'FORUM_LOCATION' => $location,
'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id),
'U_FORUM_LOCATION' => append_sid($location_url))
);
$$which_counter++;
}
}
if( $registered_users == 0 )
{
$l_r_user_s = $lang['Reg_users_zero_online'];
}
else if( $registered_users == 1 )
{
$l_r_user_s = $lang['Reg_user_online'];
}
else
{
$l_r_user_s = $lang['Reg_users_online'];
}
if( $hidden_users == 0 )
{
$l_h_user_s = $lang['Hidden_users_zero_online'];
}
else if( $hidden_users == 1 )
{
$l_h_user_s = $lang['Hidden_user_online'];
}
else
{
$l_h_user_s = $lang['Hidden_users_online'];
}
if( $guest_users == 0 )
{
$l_g_user_s = $lang['Guest_users_zero_online'];
}
else if( $guest_users == 1 )
{
$l_g_user_s = $lang['Guest_user_online'];
}
else
{
$l_g_user_s = $lang['Guest_users_online'];
}
$template->assign_vars(array(
'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users),
'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users))
);
if ( $registered_users + $hidden_users == 0 )
{
$template->assign_vars(array(
'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing'])
);
}
if ( $guest_users == 0 )
{
$template->assign_vars(array(
'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing'])
);
}
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Verfasst: 09.01.2005 17:23
von Nico Haase
Verfasst: 09.01.2005 19:54
von Toreador
warum sollte ich das tun?
ich will nicht sehen, wer in den letzten 5 Minuten online war, die 5 Sekunden sind beabsichtigt...
oder führt das zu irgendwelchen Problemen?
Verfasst: 09.01.2005 20:39
von Nico Haase
das könnte schon eine auswirkung haben, weil es nur die seitenaufrufe der letzten fünf sekunden zeigt. setz die 300 einfach testweise mal wieder ein. wenns dann nicht klappt, empfehle ich, die viewonline.php aus dem originalpaket drüber zu schreiben; außer der 300 ist keine änderung drin
Verfasst: 10.01.2005 07:31
von Toreador
danke für den Tip ;-)
ich hab die Zeitwerte jetzt alle auf den Originalwert eingestellt, d.h. auch die im online/offline/hidden-Mod...
und nun scheint alles so zu funktionieren wie es soll, dabei belass ich es jetzt auch ;-)
Verfasst: 29.01.2005 15:06
von Buspilot
Ich verzweifle gleich. Der mod läuft bei mir schon lang, nur hätt ich nu auch gern das die Junior Admins farblich anders angezeigt werden. Aba das geht nich.....
Hilf mir mal bitte jemand...