"viewonline" auf eigener Homepage?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Lazze
Mitglied
Beiträge: 6
Registriert: 20.05.2004 13:32

"viewonline" auf eigener Homepage?

Beitrag von Lazze »

Hi, ich hoffe ihr könnt mir helfen.

Ich will kein Login auf meiner Webseite, jedoch hätte ich gerne eine Lösung um die Leute die grad in meinem phpbb2 forum online sind, ebenfalls auf meiner Homepage sichtbar zu machen.

Das ganze sollte am Design anpassbar sein, es sollte nicht das design und die tabellen vom forum übernommen werden, es sollten lediglich die Online-User ausgelesen werden.

mfg,
lazze
Lazze
Mitglied
Beiträge: 6
Registriert: 20.05.2004 13:32

Beitrag von Lazze »

ist man hier mit dieser frage überfordert? naja, ich denke nicht und warte weiterhin auf eine antwort. jeder kleinste hinweis würde mir schon was bringen.
Benutzeravatar
QCO
Mitglied
Beiträge: 708
Registriert: 15.03.2003 12:30
Wohnort: Leipzig

Beitrag von QCO »

Vorschlag: Du kopierst dir einfach aus phpbb den Code, der diese Anzeige macht. So abwegig ist diese Idee wirklich nicht...

Aber wir helfen ja gern.

Deshalb hier schon rauskopiert und einige unwichtige Passagen gestrichen.
Code ist ungetestet und ohne Haftung und Gewährleistung...

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = 'forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

include($phpbb_root_path . 'language/lang_german/lang_main.'.$phpEx);

$logged_visible_online = 0;
$logged_hidden_online = 0;
$guests_online = 0;
$online_userlist = '';

$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, 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 ) . "
	 ORDER BY u.username ASC, s.session_ip ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql);
}

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

$prev_user_id = 0;
$prev_user_ip = '';

while( $row = $db->sql_fetchrow($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'] == ADMIN )
			{
				$row['username'] = '<b>' . $row['username'] . '</b>';
				$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
			}
			else if ( $row['user_level'] == MOD )
			{
				$row['username'] = '<b>' . $row['username'] . '</b>';
				$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
			}

			if ( $row['user_allow_viewonline'] )
			{
				$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
				$logged_visible_online++;
			}
			else
			{
				$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
				$logged_hidden_online++;
			}

			if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
			{
				$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
			}
		}

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

	$prev_session_ip = $row['session_ip'];
}
$db->sql_freeresult($result);

if ( empty($online_userlist) )
{
	$online_userlist = $lang['None'];
}
$online_userlist = $lang['Registered_users'] . ' ' . $online_userlist;

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


if ( $total_online_users == 0 )
{
	$l_t_user_s = $lang['Online_users_zero_total'];
}
else if ( $total_online_users == 1 )
{
	$l_t_user_s = $lang['Online_user_total'];
}
else
{
	$l_t_user_s = $lang['Online_users_total'];
}

if ( $logged_visible_online == 0 )
{
	$l_r_user_s = $lang['Reg_users_zero_total'];
}
else if ( $logged_visible_online == 1 )
{
	$l_r_user_s = $lang['Reg_user_total'];
}
else
{
	$l_r_user_s = $lang['Reg_users_total'];
}

if ( $logged_hidden_online == 0 )
{
	$l_h_user_s = $lang['Hidden_users_zero_total'];
}
else if ( $logged_hidden_online == 1 )
{
	$l_h_user_s = $lang['Hidden_user_total'];
}
else
{
	$l_h_user_s = $lang['Hidden_users_total'];
}

if ( $guests_online == 0 )
{
	$l_g_user_s = $lang['Guest_users_zero_total'];
}
else if ( $guests_online == 1 )
{
	$l_g_user_s = $lang['Guest_user_total'];
}
else
{
	$l_g_user_s = $lang['Guest_users_total'];
}

$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);
Schnelle direkte Hilfe? Modeinbau? Umfassender, persönlicher Support? Ein individuelles Design/Template?
Ich bin käuflich und löse zu kleinen Preisen Deine Probleme. Anfragen bitte per PN oder Mail.
Lazze
Mitglied
Beiträge: 6
Registriert: 20.05.2004 13:32

Beitrag von Lazze »

ok, ich hab den code jetzt mal übernommen und als onlineliste.php gespeichert (erstmal ohne nichts, also kein design, keine homepage- nur zum test). Ich hab die Pfade eingetragen und trotzdem funktionierts irgendwie nicht - es folgt vom Server keine Fehlermeldung - es ist nur eine weiße Seite ohne Inhalt zu sehen.
<?php
define('IN_PHPBB', true);
$phpbb_root_path = 'community/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

include($phpbb_root_path . 'language/lang_german_sie/lang_main.'.$phpEx);

$logged_visible_online = 0;
$logged_hidden_online = 0;
$guests_online = 0;
$online_userlist = '';

$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, 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 ) . "
ORDER BY u.username ASC, s.session_ip ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql);
}

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

$prev_user_id = 0;
$prev_user_ip = '';

while( $row = $db->sql_fetchrow($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'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}

if ( $row['user_allow_viewonline'] )
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
$logged_visible_online++;
}
else
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
$logged_hidden_online++;
}

if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
}

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

$prev_session_ip = $row['session_ip'];
}
$db->sql_freeresult($result);

if ( empty($online_userlist) )
{
$online_userlist = $lang['None'];
}
$online_userlist = $lang['Registered_users'] . ' ' . $online_userlist;

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


if ( $total_online_users == 0 )
{
$l_t_user_s = $lang['Online_users_zero_total'];
}
else if ( $total_online_users == 1 )
{
$l_t_user_s = $lang['Online_user_total'];
}
else
{
$l_t_user_s = $lang['Online_users_total'];
}

if ( $logged_visible_online == 0 )
{
$l_r_user_s = $lang['Reg_users_zero_total'];
}
else if ( $logged_visible_online == 1 )
{
$l_r_user_s = $lang['Reg_user_total'];
}
else
{
$l_r_user_s = $lang['Reg_users_total'];
}

if ( $logged_hidden_online == 0 )
{
$l_h_user_s = $lang['Hidden_users_zero_total'];
}
else if ( $logged_hidden_online == 1 )
{
$l_h_user_s = $lang['Hidden_user_total'];
}
else
{
$l_h_user_s = $lang['Hidden_users_total'];
}

if ( $guests_online == 0 )
{
$l_g_user_s = $lang['Guest_users_zero_total'];
}
else if ( $guests_online == 1 )
{
$l_g_user_s = $lang['Guest_user_total'];
}
else
{
$l_g_user_s = $lang['Guest_users_total'];
}

$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);
?>
Der Ordner wo das Forum vorhanden ist lautet join7.de/community/

Hab ich was vergessen oder was hab ich hier falschgemacht?
http://www.join7.de/onlineliste.php[/quote]
Jack9027
Mitglied
Beiträge: 344
Registriert: 05.01.2004 18:46

Beitrag von Jack9027 »

fehlt da nicht ein echo ? :wink:
Lazze
Mitglied
Beiträge: 6
Registriert: 20.05.2004 13:32

Beitrag von Lazze »

ich hab hier eh voll kein plan, also wo und wie platziere ich den echo befehl?
Benutzeravatar
QCO
Mitglied
Beiträge: 708
Registriert: 15.03.2003 12:30
Wohnort: Leipzig

Beitrag von QCO »

Ich dachte, das wäre dann klar...

Code: Alles auswählen

echo $l_online_users;
echo '<br />';
echo $online_userlist;
Schnelle direkte Hilfe? Modeinbau? Umfassender, persönlicher Support? Ein individuelles Design/Template?
Ich bin käuflich und löse zu kleinen Preisen Deine Probleme. Anfragen bitte per PN oder Mail.
Lazze
Mitglied
Beiträge: 6
Registriert: 20.05.2004 13:32

Beitrag von Lazze »

es klappt nun, danke!
MatneX
Mitglied
Beiträge: 23
Registriert: 24.02.2004 17:47
Wohnort: Paderborn

Beitrag von MatneX »

Kann ich das mit allem so machen?
Ich würde auf meiner Seite gerne folgendes anzeigen lassen:

- Loginbereich
- Onlineliste
- Buddyliste
- Die Threads, ohne das ganze Forum anzuzeigen

Kann mir jemand sagen ob das geht und wenn ja wie?
Benutzeravatar
reinhard
Mitglied
Beiträge: 10
Registriert: 23.04.2004 20:42
Wohnort: Eutin
Kontaktdaten:

Who´s online auf anderer Seite

Beitrag von reinhard »

phpbb 2.08

Moin,

möchte ich auch haben...

Ich habe verschiedenen Möglichkeiten die hier angeboten werden ausprobiert, jedoch habe ich kein Ergebnis erzielt.

HTML-Seite:

www.neustaedter-schuetzengilde.de

Board:
https://sslsites.de/neustaedter-schuetz ... /index.php

Ich habe die Schnipsel mit include in die HTML-Seite eingebaut und verschiedene Möglichkeiten, die hier angeboten werden, ausprobiert. Aber es geht nicht :-(


<?php
define('IN_PHPBB', true);
$phpbb_root_path = 'restricted/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
...
...
...
Evtl. die Definition des Pfades, da das Board über SSL läuft?

Tipps?
Gruß
Reinhard
Antworten

Zurück zu „Coding & Technik“