quentin: eingeloggte user anzeigen?

hallo allerseits!

darf ich wieder einmal mit einem asp problem nerven? (ich hoffe doch ;)

aaalso, ich habe einmal ganz bescheiden ein kleines asp board gemacht (http://ims.xsite.at/quentin/board/)

wenn sich ein user einloggt bekommt er eine SESSION("USER") variable mit der entsprechenden ID mitgeschickt, über die er später identifiziert wird.

so, auf ernstzunehmenden boards sieht man ja, wer alles eingeloggt ist, aber wie macht man sowas?

hab noch kein annähernd ähnliches beispiel gefunden auf den diversen asp sites...

könnt ihr mir eines zeigen | senden | erklären | oder was auch immer?

wär euch ewig dankbar (oder zumindest eine ganze weile lang ;)

zur weiteren info: in der tabelle t_user gibts die folgenden relevanten spalten: ID, NICK, PWD - falls euch das weiterhilft..

beste grüße,
 - quentin

  1. Hallo Quentin,
    nach dem Einloggen schreibst Du das ganze (ID, NICK) in eine Tabelle,
    dort wo Du anzeigen willst wer da alles Online ist, liest Du diese Tabelle aus und zeigst die Inhalte an.
    wie DB-Zugriffe generell gehandhabt werden steht bei http://www.aspfaq.de

    1. Hi,
      Du kannst die von Christian beschrieben Weise verfolgen oder auch eine dieser beiden Arten versuchen:
      1. Du speicherst in einer Application-Variabel, welche IDs gerade online sind. Auf diese Variabeln können alle Nutzer der Applikation zugreifen.

      2. Du fügst ein Boolean Feld bei Deiner Registrierdatenbank hinzu. Dieses wird beim einloggen auf Wahre gesetzt und beim ausloggen wieder auf Falsch. Dann kannst Du Dir einfach alle Datensätze ausgeben, bei denen dieser Wert Wahr ist.

      Alle 3 Möglichkeiten haben eine Gemeinsamkeit. Du mußt nicht nur abfangen, wenn sich jemand aktiv ausloggt, sondern auch, wenn jemand einfach den Browser schließt. Dies geschieht durch die Datei global.asa mit der Routine OnSessionEnd.
      Desweiteren mußt Du Dir darüber im klaren sein, daß diese Systeme nur funktionieren, wenn die User Cookies aktzeptieren.

      MfG
      JankoW

        1. Du speicherst in einer Application-Variabel, welche IDs gerade online sind. Auf diese Variabeln können alle Nutzer der Applikation zugreifen.

        hallo!

        ich denke das ist die sympathischste variante für mich.. aber wie mach ich das? ich bräuchte wenn möglich ein leicht zu verstehendes code beispiel... ????

        danke!

        gruß
         quentin

        1. Hallo nochmals,
          also auf Applicationvariabeln greifst Du ähnlich zu wie auf Sessionvariabeln.
          application("test") = "Ich"

          Respone.Write(application("test")) --> Ich

          Es ist also ganz einfach. Diese Variabeln sind, wie der Name schon sagt so lange aktiv, bis die Applikation beendet wird (was normalerweise nur bei einem Neustart des Servers oder tiefgreifenden Systemänderungen des Servers geschieht).
          Zugreifen auf diese Variabeln kann, wie schon gesagt, jeder, der sich in der entsprechenden Applikation befindet.

          JEDOCH: Es ist damit etwas Vorsicht geboten. Erzeuge so wenig Applikationvariabeln, wie nur möglich. Da diese die ganze Zeit vorhanden sind, fressen sie auch die ganze Zeit Systemressourcen. Ich würde daher nur eine Variable empfehlen, in der alle IDs der jeweiligen User, die sich online befinden, gespeichert sind. Außerdem solltest Du beim OnSessionEnd-Aufruf vielleicht, falls die Variable, nachdem Löschen der letzten ID leer ist, sie auch löschen.

          Für weitere Fragen kann ich sonst noch www.aspfaq.de und www.aspheute.com empfehlen. Dort solltest Du eigentlich fündig werden.

          MfG
          JankoW

          1. hi janko!

            puh, hab schon fast befürchtet du übersiehst diesen post noch ;)

            ich werd mich auf jeden fall noch weiter schlau(er) machen..

            DANKE!

            gruß,
             quentin