Beitrag von Oliver (172 Beiträge) am Sonntag, 24.Juni.2001, 23:45. WWW: www.verwitwet.de
Welche Nutzer sind online?
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 25.Juni.2001, 00:47.
Re: Welche Nutzer sind online?
Lass doch einfach die liste anzeigen, deren logout="" also leer ist. Ist doch einfacher und die Leute sind definitiv online, außer sie haben ein Fenster geschlossen.
Sander
Antworten
Beitrag von Marco (840 Beiträge) am Freitag, 15.Februar.2002, 11:05.
Danke
Hallo Christoph,
läuft prima!
Ich habe den Ausdruck aber direkt vor das
gesetzt, weil die HTML-Tags sonst herausgefiltert werden.
Vielen Dank,
Marco
Antworten
Beitrag von Oliver (172 Beiträge) am Montag, 25.Juni.2001, 09:18.
Re: Welche Nutzer sind online?
Aber das ist ja das Problem!
Wenn sie ohne Logout die HP verlassen haben, sind sie eventuell tagelang "online". Das wollte ich eigentlich mit Überprüfung der Session-Id ausschließen.
Ich habe nur keine Idee, wie ich das mit "get_next" hinbekomme...
Oliver ;-)
Antworten
Beitrag von Stefan Skalla (86 Beiträge) am Montag, 25.Juni.2001, 10:17. WWW: www.whatsonmymind.net
Re: Welche Nutzer sind online?
Hi Oliver,
Ich habe z.B. eine zusätzliche Datenbank angelegt, in der temporär die einzelnen Sitzungen verwaltet werden. Diese Datenbank sessions enthält die Felder UserName, SID und LoginZeit. Im Feld LoginZeit wird zum Zeitpunkt des Einloggens der Wert der Perl-Funktion time abgespeichert (liefert die Anzahl der Sekunden seit 1.1.1970). Du musst das Einloggen dann wahrscheinlich etwas überarbeiten:
Wenn sich jetzt ein Nutzer einloggt, muss zuerst überprüft werden, ob er in der Datenbank sessions noch drinsteht (also ob er beim letzten Besuch das Logout vergessen hat). Wenn ja, wird der Datensatz über den mod-Befehl aktualisiert. Wenn kein Datensatz gefunden wird, dann einfach mit put-Befehl einen neuen anlegen.
$DeineNeueSID=blabla;
get "UserName==$DeinUser", "sessions";
if ($_amount>0)
{
mod "UserName==$DeinUser", ["sid", $DeineNeueSID, "LoginZeit", time], "sessions";
}
else
{
put ["UserName", $DeinUser, "sid", $DeineNeueSID, "LoginZeit", time]
}
Beim Logout eines Nutzers muss der Datensatz dann gelöscht werden.
Wenn Du jetzt die Nutzer ausgeben willst, die gerade online sind, müsstest Du eine Zeitspanne nach Deinem Ermessen beliebig festlegen, für die eine Session-ID gültig sein soll, also z.B. 1200 Sekunden. Über
$Zeitgrenze=time-1200;
out "Gerade Online:<br>";
get "LoginZeit >= $Zeitgrenze", "sessions";
while (get_next "sessions")
{
out $UserName."<br>";
}
bekommst Du dann eine relativ aktuelle Liste.
Man kann das Spielchen jetzt sogar noch weiter treiben. Bei Baseportal selbst ist es ja z.B. so, dass Du nach 15 Minuten (glaube ich) Inaktivität aufgefordert wirst, Dich erneut anzumelden. Das macht z.B. dann Sinn, wenn Du Deinen Rechner unbeaufsichtigt verlässt, ohne Dich auszuloggen.
Du kannst jetzt auf Deiner Website mit der oben beschriebenen session-Datenbank den gleichen Effekt erzielen, indem Du bei jedem Seitenaufruf die zeitliche Gültigkeit der SID überprüfst.
Du kannst Dich ja mal wieder bei http://www.WhatsOnMyMind.net registrieren (hab jetzt alles neu gestartet und bin dankbar für jeden Nutzer). Ich habe zwar so eine Online-Liste (noch) nicht, aber wenn Du Dich hier einloggst und 20 Minuten lang nichts machst, musst Du Dich neu anmelden. Probier's einfach mal aus.
Gruß,
Stefan
Antworten
Beitrag von Oliver (172 Beiträge) am Montag, 25.Juni.2001, 17:27.
Re: Welche Nutzer sind online?
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 25.Juni.2001, 18:49.
Re: Welche Nutzer sind online?
so könnts was werden
<perl>
init "userprotokoll";
$Zeitgrenze=time-1400;
get "Id==*","userprotokoll";
while (get_next ("userprotokoll"))
{
if ($letzterlogout ="" && letzterlogin >= $Zeitgrenze)
{
out "$benutzername <br>";
$i++;
}
}
unless ($i)
{
out "keiner Online";
}
</perl>
Ich hab mal in deine Templates geschaut, du gibts ganz oft den Namen der db bei put/mod ohne "" an - falsch.
zb:
mod "Id==..",["bla",$bla.....],"dbname";
Sander
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 25.Juni.2001, 18:50.
Re: Welche Nutzer sind online? - NAchtrag
Antworten
Beitrag von Oliver (172 Beiträge) am Montag, 25.Juni.2001, 20:57.
Re: Welche Nutzer sind online?
Hallo Sander,
schön, dass du dir noch mal meine Templates angesehen hast :-))
Ich habe deinen Vorschlag mal angesehen und ausprobiert, aber es "funzt" noch nicht. Obwohl ich mit einem User eingeloggt habe, zeigt mir das Template "keiner online" an!?
Ich habe einfach deinen Vorschlag in meine testseite kopiert...
Wo liegt eigentlich der Unterschied zwischen "=" und "eq"?
Oliver ;-)
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 25.Juni.2001, 21:24.
Re: Welche Nutzer sind online?
= ist für total falsch, == ist für Zahlen, eq für Text. Und da "leer" ein nichtvorhandener String ist - eq.
So richtig sehe ich in dem Templates nicht mehr durch, gut wäre es zu kommentieren mit # blabla.
in welchem Template ist das?
Sander
Antworten
Beitrag von Oliver (172 Beiträge) am Montag, 25.Juni.2001, 21:30.
Re: Welche Nutzer sind online?
Antworten
Beitrag von Oliver (172 Beiträge) am Montag, 25.Juni.2001, 21:41.
Re: Welche Nutzer sind online?
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 25.Juni.2001, 21:50.
Re: Welche Nutzer sind online?
Antworten
Beitrag von Oliver (172 Beiträge) am Montag, 25.Juni.2001, 22:20.
Re: Welche Nutzer sind online?
jouuuu :-))))
was hast du denn jetzt gemacht???
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 25.Juni.2001, 22:36.
Re: Welche Nutzer sind online?
Antworten