22. marts 2003 - 20:20Der er
10 kommentarer og 2 løsninger
Online
Hey alle
Er der nogle der ved hvordan man laver sådan et script der viser hvem medlemmere der er online ??? Altså hvormange der er logget ind, og evt. hvem der er logget ind, så man kan lave sådan en liste.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
<script language="vbscript" runat="server"> Sub Application_OnEnd() Application("totvisitors")=Application("visitors") End SubSub Application_OnStart Application("visitors")=0 End SubSub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End SubSub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub</script>
Hvis det skal være med login for at kende hvem er hvem så er der mange linier kode. du skal have en tabel så bliver din global.asa sådan:
<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart Application("connString") = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& server.MapPath("test.mdb") End Sub
Sub Session_OnEnd set conn = Server.CreateObject ("ADODB.Connection") conn.Open Application("connString") query = "UPDATE User_LogTime SET Logout_Time=#" & now() & "#, offline=True WHERE offline=False AND SID=" & Session.SessionID & " AND user_id=" & Session("member") conn.Execute (query) conn.Execute ,recaffected
I dit update sætning sætter du brugeren OffLine da de forlader (Logout) siden vha. ... offline=True WHERE offline=False... i Session_OnEnd. Så har du login asp hvor du sætter brugeren ind i tabelen:
if UserName<>"" then if Password<>"" then set conn = Server.CreateObject ("ADODB.Connection") conn.Open Application("connString") query = "SELECT Id FROM Members WHERE UserName='" & UserName & "' AND Password='" & Password & "'" set rs = conn.Execute (query)
if rs.eof then Response.Write "<p class=errmsg>Invalid brugernavn og password!</p>" conn.Close else Session("member") = rs("Id") rs.close set rs = nothing
conn.Execute ("UPDATE User_LogTime SET offline=True WHERE offline=False AND user_id=" & session("member")) query = "INSERT INTO User_LogTime (user_id, SID, Login_Time) VALUES (" & Session("member") & "," & Session.SessionID & ",#" & now() & "#)" conn.Execute (query)
conn.close set conn = nothing
Response.Redirect "home.asp" end if else Response.Write "<p class=errmsg>Du skal udfylde begge felter.</p>" end if end if %>
det er temmeligt nemt at lave. du ser i din database og udtrækker alle brugere som har status=online og når browseren lukkes kommer en popup som updater feltet status til=offline.
Nåh, hvordan du har designet dine side ved jeg ikke men lig som her på Eksperten skal du lave en logout link fx (du kan bestemme hvordan og hvor på din side brugeren logger ud) det er bare en example:
-------< logout.asp >---------- <%@ Language=VBScript %> <!--#include file="header.asp"--> <% Session.Abandon %> <CENTER> <p class=FieldLabel>Session er død! Ha' det godt!</p> <font class=fieldLabel>Gå tilbage til</font> <a href="login.asp" class=errmsg>Login?</a> </CENTER>
Men tilbage til dit spørgsmål om hvad nu hvis brugeren bare lukker browseren. Svaret er når brugeren logger ud kaldes Session.Abandon. Hvis brugeren logger din application uden at logger ud så efter session.Timeout "expires" udløb Session_OnEnd vil køre (excecuted). I dette procedure du opdatere den rekord som blev skrevet i login.asp og du vil opdatere det "Logout_time" og den "offline2 kolonne til True (sand).
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.