Seite 1 von 2

wer ist online - verlegen

Verfasst: 23.12.2006 19:37
von Anton222
hallo! verrät mir einer wie ich es schaffe auf einer anderen, übergeordneten seite angezeigt zu bekommen wieviel gäste+user+unsichtbare grade online sind?
danke

Verfasst: 23.12.2006 19:52
von Miriam
Die index.php ist in der Hierarchie des phpBB die höchste Seite.

Was meinst Du mit "übergeordnet"?

Verfasst: 23.12.2006 21:03
von Anton222
www.meineseite.at/phpbb
ist das forum

und
www.meineseite.at
ist meine starseite

ich würde es gerne auch auf dieser klein einbinden wieviele leute grade im forum online sind.

Verfasst: 23.12.2006 22:51
von Miriam
Anton222 hat geschrieben:www.meineseite.at
ist meine starseite
Cooler Link :P


Nochmal zum Thema: Hast Du schon mal die Suche bemüht? Es gibt einige Threads zu dieser Problematik.

Verfasst: 24.12.2006 09:52
von Anton222
das man das grundsätzlich gefragt wird:D
ja habe ich!
und dies ist oft schwierig wenn man mehrere worte benutzen muß um etwas zu beschreiben..
zumindest so das nicht 19 von 20 ergebnssen etwas ganz anderes beinhalten;)

Verfasst: 24.12.2006 10:36
von Miriam
Generell sollte es so laufen:
Code test.php

Code: Alles auswählen

<?php
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_INDEX);
init_userprefs($userdata);
//
// End session management
//


$page_title = 'Anzeige der Online-User';
define('SHOW_ONLINE', true);
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
	'body' => 'test.tpl')
);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
Dazugehörige test.tpl im Verzeichnis Deines Standardtemplates:

Code: Alles auswählen

<table>
  <tr>
	<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
  </tr>
</table>
That's it.

Verfasst: 24.12.2006 16:41
von Anton222
danke! aber du hast mich falsch verstanden;)
viel einfacher;)
ich möchte eigentlich nur die anzahl der user neben dem menü habe, auf der übergeordneten startseite haben..

also eine ganz phpbb unabhängige , übergeordnete startseite wo ich neben der navi (oder wo auch immer) einfach ausgegeben bekomme wieviel leute grade alles in allem online sind..
keine namen, kein mod ..garnix :)
nur zb zur zeit sind XY leute im forum (oder auf dieser seite).

also quasi

$geuests_online + $reg_online + hidden_online ;

so ungefähr;)
bin nicht so der große php'ler:)

hoffe man hats jetzt verstanden :-?

Verfasst: 24.12.2006 17:31
von S2B
Schau dir mal das hier an: http://www.phpbb.de/viewtopic.php?t=96371

Edit: Hmm, das sollte man mal ein bisschen überarbeiten... :D Moment

Edit2:

Code: Alles auswählen

$five_min_ago_ts = time() - (60 * 5);

// Auslesen
$sql = "SELECT user_id, username
	FROM phpbb_users
	WHERE user_session_time > $five_min_ago_ts
	ORDER BY user_session_time DESC";
if (!$result = mysql_query($sql))
{
	die('Die Online-Liste konnte nicht ausgelesen werden: ' . mysql_error());
}

// Liste generieren
$users_online = '';
while ($user = mysql_fetch_assoc($result))
{
	$users_online .= ($users_online != '') ? ', ' : '';
	$users_online .= '<a href="http://dein-forum.de/dein-pfad/profile.php?mode=viewprofile&u=' . $user['user_id'] . '">' . $user['username'] . '</a>';
}
mysql_free_result($result);

// Ausgeben
if ($users_online != '')
{
	echo $users_online;
}
else
{
	echo 'Momentan ist kein registrierter Benutzer online.';
}
und vorher Verbindung zur Datenbank aufbauen. :wink:

Verfasst: 24.12.2006 18:30
von Anton222
krieg ich nicht hin!?
wie meinst du Verbindung zur Datenbank aufbauen?

Verfasst: 25.12.2006 00:45
von gn#36
da gehört irgendwo ein Befehlt mysql_connect(xyz) und mysql_select_db(abc) hin. Mit Inhalt füllen müsstest du selbst, schließlich kenne ich keine Passwörter. Einfacher ist aber vermutlich einfach das hier vor das Skript zu schreiben:

Code: Alles auswählen

define('IN_PHPBB',true);
$phpbb_root_path = 'pfad_zum_forum/';
include($phpbb_root_path.'extension.inc);
include($phpbb_root_path.'common.'.$phpEx);
Das funktioniert natürlich alles nur wenn es auch eine mysql Datenbank ist...
Sonst musst du auf die allgemeineren Befehle umsteigen. ($db->sql_query() statt mysql_query() $db->fetchrow() statt mysql_fetch_assoc()...)