Re: Welche Nutzer sind online? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    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


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Oliver (172 Beiträge) am Sonntag, 24.Juni.2001, 23:45. WWW: www.verwitwet.de
    Welche Nutzer sind online?

      Hallo,

      hab noch 'ne Frage... ;-)

      Ich habe eine Datenbank "nutzer", in die beim Login die Session-Id im Feld "nutzer_sid" eingetragen wird.

      Folgende Formel prüft die Gültigkeit der Id:
      $sid_max = 10+(1*$nutzer_sid);
      

      Wie kann ich mir nun eine Liste aller Nutzer mit $nutzer_sid >0 und gültiger Session-Id anzeigen lassen?

      Danke

      Grüße
      Oliver ;-)

     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

      out "$nx$x<br>"; $nx="";
      

      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?

      Hallo Stefan,

      danke für deinen Tipp.

      Ich habe das jetzt ähnlich umgesetzt. In die Datenbank wird jetzt mit Hilfe von "time" die Login- und Logoutzeit eingetragen. Irgendwie bekomme ich jetzt aber die Abfrage nicht hin:

      <perl>
      init "userprotokoll";
      $Zeitgrenze=time-1400;
      if ($letzterlogout ="" && letzterlogin >= $Zeitgrenze)
            {
               while (get_next ("userprotokoll"))
                {
                 out "$benutzername <br>";
                }  
          }
      else
      {
      out "keiner Online";
      }
      </perl>
      


      Dabei sollen alle Datensätze überprüft werden, ob das Logoutfeld leer ist und das Loginfeld nicht älter als XXXX-Sekunden sein.

      Oliver ;-)

     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

      if ($letzterlogout eq "" && letzterlogin >= $Zeitgrenze)
      

     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?

      so, nun teste nochmal

     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?

      einfach bei letzterlogin ein $ davor :-))))
      if ($letzterlogout eq "" && letzterlogin >= $Zeitgrenze)
      

      Sander

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!