Avatar billede thb Nybegynder
22. marts 2003 - 20:20 Der 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.

Thomas
Avatar billede hossein Nybegynder
22. marts 2003 - 20:55 #1
Du skal ha en Global.asa fil:

<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>

----------< Display.asp >---------

<html>
<head>
</head>
<body>
<p>
Online brugere: <%response.write(Application("visitors"))%>
</p>
</body>
</html>

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

    conn.Close
    set conn = Nothing   
End Sub

</SCRIPT>
Avatar billede thb Nybegynder
22. marts 2003 - 21:22 #2
hvad sker der så hvis de bare lukker deres browser, hvordan bliver du så fjernet fra dben.???

Thomas
Avatar billede thb Nybegynder
22. marts 2003 - 21:22 #3
Jeg kan sagtens få den med bare global.asa til at virke, men det andet har jeg ikke prøve at lave før..
Avatar billede hossein Nybegynder
22. marts 2003 - 21:38 #4
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:

-----< Login.asp  >--------
    UserName = Request.Form ("UserName")
    Password = Request.Form ("Password")
   
    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
%>

Så er du godt i gang!
Avatar billede thb Nybegynder
22. marts 2003 - 22:50 #5
jamen hvis en person som er logget ind bare lukker browseren, så kan der vel ikke køres noget asp der kan sætte ham til offline...

Thomas
Avatar billede coolstar Nybegynder
23. marts 2003 - 08:43 #6
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.

Gelm global.asa osv. det andet her er smartere...
Avatar billede thb Nybegynder
23. marts 2003 - 12:29 #7
hvordan laver man den popup når siden lukkes.. ???

Thomas
Avatar billede hossein Nybegynder
23. marts 2003 - 19:11 #8
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).

>> coolstar ??
Avatar billede hossein Nybegynder
23. marts 2003 - 19:12 #9
"offline2 = "offline"
Avatar billede thb Nybegynder
23. marts 2003 - 19:31 #10
okay det kan jeg faktisk godt se at du har skrevet :)

et spm mere:
Ville det ikke være smartere at gøre det på coolstars måde, for så bliver medlemmet jo taget af online listen med det samme, ikk ??

Thomas
Avatar billede coolstar Nybegynder
23. marts 2003 - 19:38 #11
jo min måde klare 2 fluer med et spæk :)
Avatar billede coolstar Nybegynder
23. marts 2003 - 19:40 #12
hvad ? hossein ?
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