Seite 1 von 2

Hilfe: Will Daten wie z.B. Username des eingeloggten Users?!

Verfasst: 25.06.2005 21:43
von sptotal
Hallo,

ich möchte gerne auf einer normalen Seite z.B. den Usernamen eines eingeloggten Users abfragen. Die Seite, auf der der Username oder Ähnliches des Users abgefragt werden sollen, soll nicht im Foren-Design erscheinen.

Wie geht das nun?

MfG

sptotal

Verfasst: 25.06.2005 22:35
von ekelzwerg
1. seite in phpBB einbinden.
2. mit:

Code: Alles auswählen

<?php  echo $userdata['username']; ?> 
wird der username ausgegeben.

Verfasst: 26.06.2005 20:43
von sptotal
Das meinte ich leider nicht.

Also ich will auf einer Seite, die Nichts mit dem phpbb-Forum zu tun hat, den Usernamen des Users abfragen, der eingeloggt ist und gerade die Seite aufruft.

Wie bekomme ich das hin?

MfG

sptotal

Re: Hilfe: Will Daten wie z.B. Username des eingeloggten Use

Verfasst: 27.06.2005 03:49
von CKoenig
sptotal hat geschrieben:Wie geht das nun?
Versuch's mal mit dem folgenden PHP Code:

Code: Alles auswählen

// in das folgende Array sollen mal die User, welche online sind rein
$users_online = array();

// Timestamp basteln der 5 Minuten zurück liegt
$five_min_ago_ts     = strtotime("-5 minutes");

// Abfrage vorbereiten: php_users Table abfragen nach session_times die neuer als 5 Minuten sind 
// (also User suchen bei denen die Session Time grösser als unser  Five Minutes Ago Timestamp ist)
$SQL="SELECT username FROM phpbb_users WHERE user_session_time > $five_min_ago_ts ORDER BY user_session_time DESC";

// unser Array wird dann mit den Usern, die in den letzten 5 Minuten online aktiv waren, gefüllt
if ($users=MYSQL_QUERY($SQL)){
	while($user_row = mysql_fetch_row($users)) {
		$users_online[] = $user_row[0];
	}
}



// und zum Testen das ganze einfach mal ausgeben
if ($users_online){
	echo "Folgende registrierte User waren in den letzten 5 Minuten online:<br />";
	foreach ($users_online as $user){
		echo $user . "<br />";
	}
}else{
	echo "Niemand online in den letzen 5 Minuten<br />";
}
Das war's auch schon. Wenn Du auch die Anzahl der Gäste haben willst must Du mit dem php_sessions Table hantieren - da gibts dann auch die session_time Spalte - Gäste erkenst Du dort an ner -1 in der session_user_id Spalte.

Viele Grüsse,
Carsten

Verfasst: 28.06.2005 17:50
von sptotal
Hallo,

vielen Dank für deine Antwort, leider ist es nicht das, was ich suche.

Ich will, dass man eine bestimmte Seite nur aufrufen kann, wenn man als User eingeloggt ist. Wie bekomme ich das hin? Die Seite soll nicht im Design des Forums erscheinen, sondern hat ein eigenes Design.

MfG

sptotal

Verfasst: 28.06.2005 19:15
von kellanved
Wenn die Seite *nichts* mit phpBB zu tun hat, dann ist dies evtl. nicht das richtige Forum sie zu stellen.

Wenn es allerdings darum geht, die phpBB Nutzerdaten und Sessionfunktionen(möglicherweise auch die Templatefunktion) auch auf anderen Seiten zu verwenden, dann musst Du diese de-facto zu phpBB Seiten machen (i.e. define('IN_PHPBB'... ; include(common. ...); $userdata = session_pagestart(...; usw. an den Anfang der Datei einfügen - sieh Dir faq.php als Beispiel an) .

Das bedeutet streng genommen auch, daß der phpBB footer unter die Seite gehört.

Verfasst: 28.06.2005 19:20
von sptotal
Es dreht sich natürlich um phpbb :roll:

Ich will wie gesagt die Informationen eines Benutzers auf einer normalen Seite abfragen. Der User muss eingeloggt sein, dann wird z.B. eine Seite angezeigt, ansonsten kommt eine Fehlermeldung. So oder so ähnlich.

Deswegen muss ich wissen, wie ich auf einer NICHT-PHPBB-Seite auf die Daten eine eingeloggten phpbb-Users zugreifen kann, als wäre es eine Seite des Forums.

MfG

sptotal

Verfasst: 28.06.2005 21:29
von kellanved
sag ich doch :P , pack das hier an den Anfang der Datei:

Code: Alles auswählen

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_FAQ);
init_userprefs($userdata);

Edit: http://www.phpbb.com/kb/article.php?article_id=143

Verfasst: 01.07.2005 23:30
von sptotal
Vielen Dank, es hat funktioniert :wink:

MfG

sptotal

Re: Hilfe: Will Daten wie z.B. Username des eingeloggten Use

Verfasst: 26.08.2005 20:57
von ka/na
CKoenig hat geschrieben:
sptotal hat geschrieben:Wie geht das nun?
Versuch's mal mit dem folgenden PHP Code:

Code: Alles auswählen

// in das folgende Array sollen mal die User, welche online sind rein
$users_online = array();

// Timestamp basteln der 5 Minuten zurück liegt
$five_min_ago_ts     = strtotime("-5 minutes");

// Abfrage vorbereiten: php_users Table abfragen nach session_times die neuer als 5 Minuten sind 
// (also User suchen bei denen die Session Time grösser als unser  Five Minutes Ago Timestamp ist)
$SQL="SELECT username FROM phpbb_users WHERE user_session_time > $five_min_ago_ts ORDER BY user_session_time DESC";

// unser Array wird dann mit den Usern, die in den letzten 5 Minuten online aktiv waren, gefüllt
if ($users=MYSQL_QUERY($SQL)){
	while($user_row = mysql_fetch_row($users)) {
		$users_online[] = $user_row[0];
	}
}



// und zum Testen das ganze einfach mal ausgeben
if ($users_online){
	echo "Folgende registrierte User waren in den letzten 5 Minuten online:<br />";
	foreach ($users_online as $user){
		echo $user . "<br />";
	}
}else{
	echo "Niemand online in den letzen 5 Minuten<br />";
}
Das war's auch schon. Wenn Du auch die Anzahl der Gäste haben willst must Du mit dem php_sessions Table hantieren - da gibts dann auch die session_time Spalte - Gäste erkenst Du dort an ner -1 in der session_user_id Spalte.

Viele Grüsse,
Carsten
Der Code ist genial, wie kann man nur die User noch auf Ihr Profil linken ?