Og stadig i din global.asa, men under "Sub Session_OnEnd" sætter du følgende ind:
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
På din loginside sætter du følgende ind: Call AddOnlineUser()
Hvis du så vil se, hvor mange brugere der er på skal du skrive følgende: Response.Write CountOnlineUsers()
Men hvis du hellere vi se, hvem det er der er online skal du skrive: Call WriteOnlineUsers()
Men for at alt dette virker skal du lave en includefil, som du inkluderer i alle de sider, hvor du enten tilskriver, eller blot vil have en status. I denne fil skal du sætte følgende ind:
<% ' --- procedure til at tilføje en online bruger --- Sub AddOnlineUser() Application.Lock Application("OnlineUsers") = Application("Onlineusers") & Session("Username") & "," Application.UnLock 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 %>
Og stadig i din global.asa, men under "Sub Session_OnEnd" sætter du følgende ind:
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
Og stadig i din global.asa, men under "Sub Session_OnEnd" sætter du følgende ind:
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
End Sub
Sub Application_OnEnd ' Skriv kode som skal køres når applikationen (serveren) stoppes End Sub
Sub Session_OnStart ' Skriv kode som skal køres når en session starter End Sub
Sub Session_OnEnd ' Skriv kode som skal køres når en session afsluttes
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
Og stadig i din global.asa, men under "Sub Session_OnEnd" sætter du følgende ind:
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
End Sub
Sub Application_OnEnd ' Skriv kode som skal køres når applikationen (serveren) stoppes End Sub
Sub Session_OnStart ' Skriv kode som skal køres når en session starter End Sub
Sub Session_OnEnd ' Skriv kode som skal køres når en session afsluttes
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart ' Skriv kode som skal køres når applikationen (serveren) starter
Application.Lock Application("OnlineUsers") = "," Application.UnLock End Sub
Sub Application_OnEnd ' Skriv kode som skal køres når applikationen (serveren) stoppes End Sub
Sub Session_OnStart ' Skriv kode som skal køres når en session starter End Sub
Sub Session_OnEnd ' Skriv kode som skal køres når en session afsluttes
If Len(Session("UserName")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("Username") & ",", "") Application.UnLock End If
Siden "online.asp" og min global.asa burde være i orden, men hvad og hvordan jeg skal ændre "login.asp" kan jeg ikke se, gider du evt. at lave ændringen?
<%
login_email = replace(request.form("email"), "'", "''") if len(login_email) <= 0 AND request.cookies("autologin") = "yes" then login_email = request.cookies("email") response.write "["&request.cookies("autologin")&"]" end if login_password = trim(request.form("password")) if len(login_password) <= 0 AND request.cookies("autologin") = "yes" then login_password = request.cookies("password")
AccessDataBase = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/system.mdb") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open AccessDataBase Set rs = Conn.Execute("SELECT email, password, fnavn, enavn, adresse, postnummer, by FROM members WHERE email = '"&login_email&"'")
if not rs.EOF AND not rs.BOF then if trim(rs("password")) = login_password then session("email") = rs("email") session("fnavn") = rs("fnavn") session("enavn") = rs("enavn") session("adresse") = rs("adresse") session("postnummer") = rs("postnummer") session("by") = rs("by") response.redirect ("loggetind.asp?msg="&Server.UrlEncode("")) else response.cookies("autologin") = "no" response.redirect("loginerror.asp") end if else response.cookies("autologin") = "no" response.redirect("loginerror.asp") end if
rs.Close Conn.Close Set Conn = Nothing Set rs = Nothing
if len(login_email) <= 0 AND request.cookies("autologin") = "yes" then login_email = request.cookies("email") response.write "["&request.cookies("autologin")&"]" end if login_password = trim(request.form("password")) if len(login_password) <= 0 AND request.cookies("autologin") = "yes" then login_password = request.cookies("password")
AccessDataBase = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/system.mdb") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open AccessDataBase Set rs = Conn.Execute("SELECT email, password, fnavn, enavn, adresse, postnummer, by FROM members WHERE email = '"&login_email&"'")
if not rs.EOF AND not rs.BOF then if trim(rs("password")) = login_password then session("email") = rs("email") session("fnavn") = rs("fnavn") session("enavn") = rs("enavn") session("adresse") = rs("adresse") session("postnummer") = rs("postnummer") session("by") = rs("by") session("username") = login_email Call AddOnlineUser() response.redirect ("loggetind.asp?msg="&Server.UrlEncode("")) else response.cookies("autologin") = "no" response.redirect("loginerror.asp") end if
else response.cookies("autologin") = "no" response.redirect("loginerror.asp") end if
rs.Close Conn.Close Set Conn = Nothing Set rs = Nothing
Til det men navn, efter osv. har jeg fået løst. Men en anden ting der undre mig er at hvis man logger ind står navnet fint nok på listen, lukker man siden eller mister forbindelsen og logger ind igen, står ens navn 2 gange, findes der ikke en mulighed for at et login kun listes en gang, ellers ser det lidt mærkeligt ud
Sub Application_OnEnd ' Skriv kode som skal køres når applikationen (serveren) stoppes End Sub
Sub Session_OnStart ' Forøger antallet af brugere med 1, når en session startes Application.Lock Application("ActiveUsers") = Application("ActiveUsers") + 1 Application.UnLock End Sub
Sub Session_OnEnd ' Reducer antallet af brugere med 1, når en session afsluttes
If Len(Session("username")) > 0 Then Application.Lock Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("username") & ",", "") Application.UnLock End If
Application.Lock Application("ActiveUsers") = Application("ActiveUsers") - 1 Application.UnLock End Sub </SCRIPT>
logges de gamle sessions altid af inden en ny sættes, på den måde får jeg ikke flere af samme på online listen, det er måske lidt snyd, men det virker, så alt i alt ser det ud til at fungere ok nu :-)
Alt så fint ud, men jeg forsvinder altså fra listen efter få minutter, selvom jeg stadig er online? Hvad kan det skyldes?
Synes godt om
Ny brugerNybegynder
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.