Avatar billede w13 Novice
21. januar 2006 - 14:25 Der er 7 kommentarer og
1 løsning

Vis om hver bruger er online (global.asa?)

Hej Eksperter.

Jeg har netop lavet et brugersystem og mangler dertil en funktion, som viser hvilke brugere, der er online. Jeg går ud fra, at det må have noget med en global.asa-fil at gøre..

Nogen som kan hjælpe med det? Evt. bare koden til global.asa..

På forhånd tak.
Mvh.
W13
Avatar billede w13 Novice
21. januar 2006 - 14:30 #1
(Det er altså ikke bare en online brugere-counter, som viser antallet af online brugere.. Man skal kunne se om HVER af brugerne er online..)
Avatar billede michaelfp Nybegynder
21. januar 2006 - 16:32 #2
Nedenstående er indholdet af min GLOBAL.ASA

<SCRIPT LANGUAGE=VBScript RUNAT=Server>


'You can add special event handlers in this file that will get run automatically when
'special Active Server Pages events occur. To create these handlers, just create a
'subroutine with a name from the list below that corresponds to the event you want to
'use. For example, to create an event handler for Session_OnStart, you would put the
'following code into this file (without the comments):

'Sub Session_OnStart
'**Put your code here **
'End Sub

'EventName              Description
'Session_OnStart        Runs the first time a user runs any page in your application
'Session_OnEnd          Runs when a user's session times out or quits your application
'Application_OnStart    Runs once when the first page of your application is run for the first time by any user
'Application_OnEnd      Runs once when the web server shuts down




sub Application_OnStart
  Application.Lock
  Application("OnlineUsers") = ","
  Application.UnLock
End sub

Sub Session_OnEnd
  If Len(Session("Username")) > 0 Then
    Application.Lock
    Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "")
    Application.UnLock
  End If
End sub

Sub Session_OnStart
  Session.TimeOut = 60
End Sub

</SCRIPT>

hér er så nogle funktioner til at tilføje og fjerne brugere. Se specielt den sidste funktion!!

' --- procedure til at tilføje en online bruger ---
Sub AddOnlineUser()
  If Instr(1, Application("OnlineUsers"), Session("Username"),1)=0 Then
    Application.Lock
    Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & ","

    Application.UnLock
  end if
End Sub

' --- funktion som retunerer antallet af online brugere ---
Function CountOnLineUsers()
  Dim arrUsers
  ' --- lav et array med online brugere ---
  arrUsers = Split(Application("Onlineusers"), ",")
  ' --- antallet af online brugere er altid størrelsen på arrayet -1 ---
  CountOnLineUsers = UBound(arrUsers) - 1
End Function

' --- procedure til at udskrive online brugere ---
Sub WriteOnLineUsers()
  Dim arrUsers
  Dim n
  ' --- lav et array med online brugere ---
  arrUsers = Split(Application("Onlineusers"), ",")
  ' --- udskriv liste ---
  For n = 1 To UBound(arrUsers) -1
    Response.Write(arrUsers(n) & "<br>")
  Next
End Sub
Avatar billede w13 Novice
21. januar 2006 - 20:07 #3
Hvordan bliver brugerne så fjernet fra listen igen?

Og hvordan kan jeg hente online-oplysning om en enkelt bruger udfra et brugernavn?
Avatar billede michaelfp Nybegynder
21. januar 2006 - 20:54 #4
Når brugeren lukker sessionen, køres Sub Session_OnEnd i global.asa

Det eneste, som gemmes i Application("OnlineUsers") er brugernavne eller initialer eller hvad du nu "putter" i session("username"). Hvis du skal vide/vise mere om brugerne er du nødsaget til at lave en opslag i en tabel, hvor reference jo kunne være det samme som gemmes i Application("OnlineUsers")
Avatar billede w13 Novice
10. februar 2006 - 22:55 #5
Jeg forstår ikke helt hvordan dette gøres, da jeg har meget lidt erfaring med global.asa :s

Hvordan skulle jeg helt præcist hente online-oplysning om en enkelt bruger, når jeg har dét, der svarer til session("username")?
Avatar billede michaelfp Nybegynder
11. februar 2006 - 19:11 #6
Alt ovennævnte kode mellem
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
og
</SCRIPT>

Gemmer du i global.asa, som skal ligge i roden på webserveren.

Når en bruger logger ind, skal du gemme brugerens brugernavn eller hvad du nu validere på i session("username") og derpå kalder du Sub AddOnlineUser()

Hver gang en bruger logger af, sørger global.asa for at køre "Sub Session_OnEnd ", hvorved brugeren fjernes igen.

Application("Onlineusers") vil således altid indeholde en streng, sepereret af kommaer, med de brugere, som er logget på. Se Sub WriteOnLineUsers() m.h.t hvordan du kan læse/hente, hvem der er logget på.
Avatar billede w13 Novice
14. oktober 2006 - 14:57 #7
Nu har jeg langt om længe fået kigget på det og fået det til at virke, så mange tak for hjælpen. =) Hvis du lige opretter svar, kan du få point.
Avatar billede michaelfp Nybegynder
14. oktober 2006 - 23:22 #8
det kommer hér :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester