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

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
sptotal
Mitglied
Beiträge: 173
Registriert: 16.01.2004 23:19

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

Beitrag 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
ekelzwerg
Mitglied
Beiträge: 105
Registriert: 10.06.2005 17:02
Wohnort: Walenstadt
Kontaktdaten:

Beitrag von ekelzwerg »

1. seite in phpBB einbinden.
2. mit:

Code: Alles auswählen

<?php  echo $userdata['username']; ?> 
wird der username ausgegeben.
sptotal
Mitglied
Beiträge: 173
Registriert: 16.01.2004 23:19

Beitrag 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
CKoenig
Mitglied
Beiträge: 30
Registriert: 26.06.2005 21:05
Wohnort: Bonn
Kontaktdaten:

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

Beitrag 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
sptotal
Mitglied
Beiträge: 173
Registriert: 16.01.2004 23:19

Beitrag 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
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag 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.
sptotal
Mitglied
Beiträge: 173
Registriert: 16.01.2004 23:19

Beitrag 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
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag 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
sptotal
Mitglied
Beiträge: 173
Registriert: 16.01.2004 23:19

Beitrag von sptotal »

Vielen Dank, es hat funktioniert :wink:

MfG

sptotal
ka/na
Mitglied
Beiträge: 48
Registriert: 19.03.2005 10:54

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

Beitrag 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 ?
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“