Eingeloggte User ausgeben

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.
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Eingeloggte User ausgeben

Beitrag von Fabse »

Hallo!

Mein Problem ist, dass ich auf meiner Homepage die User die gerade Eingeloggt sind ausgeben will. Ich hab das jetzt ziemlich einfach gemacht. Und zwar so:
Wenn sich ein User einloggt, wird in der DB ein Eintrag auf 1 gesetzt. Wenn er sich wieder ausloggt, dann wird der Eintrag wieder auf 0 gesetzt. 1 == eingeloggt, 0 == ausgeloggt

Und jetzt wenn ich mein Browser Fenster schließe werde ich automatisch ausgeloggt, aber der Eintrag in der DB bleibt vorhanden!

Das will ich aber nicht weil es einfach zu unprofessionell ist! Deshalb will ich das anders lösen! Aber wie mach ich das am einfachsten?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Schau dir mal die page_header.php und dort die Routine für "Who's online" an. Da wird dann z.B. folgende Abfrage verwendet (gekürzt):

Code: Alles auswählen

	$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";
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Hab ich mir durchgesehen! Kapier ich aber nit wirklich! ;)
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Kannst du etwas genauer konkretisieren, woran es scheitert?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Ja, kann ich! ;)

Ich verstehs nicht wie ich das Richtig einbau das es Funktioniert!
Wenn ich den Quellcode nicht versteh dann ist es für mich schwer dsa Teil richtig einzubauen! Das ist leider beim phpBB Code noch der Fall. Teilweise geht es ja schon aber manchmal nicht!
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Der SQL-Befehl gibt dir alle User aus, die in den letzten fünf Minuten aktiv waren (also genau die, die auch unter "Who is online" stehen). Als SQL-Abfrage an die Datenbank schicken und dann die Namen der User (username) ausgeben - und du solltest das haben, was du willst.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Ahh.
Ich benötige dafür aber auch die session_id! Oder? Wie bau ich die dazu ein?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Einfach den SQL-Befehl so ausführen, wie er da steht (ggf. natürlich die Tabellen-Konstanten austauschen) - und fertig :-)

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Fabse
Mitglied
Beiträge: 1401
Registriert: 02.06.2003 15:10
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von Fabse »

Ich brauch das ja nicht fürs Forum sondern für meine HP! Und ich will nicht wissen wie viele User im Forum online sind, sondern wie viele auf der HP online sind!

Vielleicht hab ich es falsch erklährt. Und auf der Homepage schau mein Usertabe so aus:

Code: Alles auswählen

   id  int(255)   Nein    auto_increment              
   username  varchar(255)   Nein                  
   password  varchar(255)   Nein                  
   email  varchar(255)   Nein                  
   birthday  varchar(255)   Ja  NULL                
   rank  varchar(255)   Nein                  
   reg_date  date   Nein  0000-00-00                
   homepage  varchar(255)   Nein                  
   name  varchar(255)   Nein                  
   location  varchar(255)   Ja  NULL                
   job  varchar(255)   Ja  NULL                
   icq  varchar(9)   Ja  NULL                
   msn  varchar(255)   Ja  NULL                
   hobbies  varchar(255)   Ja  NULL                
   about_me  text   Ja  NULL                
   gender  varchar(255)   Ja  NULL  
Muss ich da jetzt noch eine Sesssion_id Zeile einfügen?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Du könntest ggf. deine Seiten in das phpBB-System mit einbinden (KB:phpbb_seite)
Ansonsten wirst du nicht herumkommen, einen ähnlichen Weg wie phpBB zu gehen: die Benutzer mit Zeitstempel in einen Tabelle schreiben, bei jeder Aktion den Zeitstempel aktualisieren und dann ein Limit setzen, ab wann du den User als offline ansiehst. Wenn der User den Browser schließt, bekommst du das i.d.R. nicht mit.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „Coding & Technik“