21. januar 2006 - 14:25Der 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..
'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
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")
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å.
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.