aleborgMedlem sedan jan. 20013 341 inlägg Jag vet att det här har varit uppe innan, men inte blivit riktigt svarat än. Hur man får fram inloggade!
Jag har ett litet problem med ett script som en polare hjälpte mig med:
global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
' Set our user count to 0 when we start the server
Application("ActiveUsers") = 0
Application("active_users")=""
End Sub
Sub Session_OnStart
Session("Username")=""
' Change Session Timeout to 20 minutes (if you need to)
Session.Timeout = 30
' Set a Session Start Time
' This is only important to assure we start a session
Session("Start") = Now
' Increase the active visitors count when we start the session
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
' Decrease the active visitors count when the session ends.
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
un=Session("Username")
if un<>"" and Application("active_users")<>"" then
tmp=Application("active_users")
idx=instr(tmp,un & "*")
tmp2=left(tmp,idx-1) & right(tmp,len(tmp)-idx-len(un))
Application("active_users")=tmp2
end if
End Sub
</SCRIPT>
vid inloggningen(efter kontroll av username)
Application(”active_users”)=Application(”active_users”) & uname & ”*”
men nu vill jag kolla om ett username är online:
user_array=split(Application(”active_users”),”*”)
for t=0 to ubound(user_array)
user=user_array(t)
//….user innehåller nu ett användarnamn
next
hur gör jag då för att visa om personen är online? Försökte med det här:
<% If user= rs("Polare") Then
Response.Write "Online"
else
Response.Write "no"
End if
%>
rs("Polare") är ett användarnamn som hämtas från en "kompis" table!
Jag får bara fram "no" trots att jag sitter på min andra dator inloggad med det användarnamnet som ska visas "online"
Någon som vet?
DeamerMedlem sedan mars 200116 inlägg user_array=split(Application(”active_users”),”*”)
for t=0 to ubound(user_array)
user=user_array(t)
If rs("Polare") = user Then
Response.Write "Online"
else
Response.Write "no"
End if
next
Borde funka tror jag.. Annars är det bara att säga till så ska jag titta på't igen..
[Redigerat av Deamer den 28 mar 2001]
aleborgMedlem sedan jan. 20013 341 inlägg nix det funkade inte, står "nononononono" jag undrar om övrig kod är rätt?
DeamerMedlem sedan mars 200116 inlägg För att lägga in en anvvändare:
Session("userNick") = oRS("nick")
Application.Lock
Application("sUsersOnline") = Application("sUsersOnline") & usrNick & "$"
Application.Unlock
För att ta bort en användare i global.asa (Sub Session_OnEnd):
usrNick = Session("userNick")
sApplication = Application("sUsersOnline")
Dim arrUsers
arrUsers = Split(sApplication, "$")
Application.Lock
Dim arrNewOnlineList
arrNewOnlineList = Filter(arrUsers, usrNick, false)
Application("sUsersOnline") = join(arrNewOnlineList, "$")
Application.UnLock
För att se om en person är online:
sNameToSearchFor = oRS("memberName")
Dim arrTemp
arrTemp = Split(Application("sUsersOnline"), "$")
For i = 0 To UBound(arrTemp)
Ïf arrTemp(i) = sNameToSearchFor Then
Response.Write "Online"
End If
Next
Denna kod funkar iallafall för mig i ett av mina små projekt..
[Redigerat av Deamer den 29 mar 2001]
nakozMedlem sedan dec. 1999653 inlägg observera att han använt sig av Ïf istället för If som man brukar göra :e
------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)
aleborgMedlem sedan jan. 20013 341 inlägg :)
Jag lyckades faktiskt få ordning på min kod, han hade glömt lite saker :)
nakozMedlem sedan dec. 1999653 inlägg aleborg: då kanske de vore schysst om du postade din lösning så vi slipper dra upp detta nån mer gång?
mvh,
------------------
void[]
stash/$gu&-public(querystring)/n int{}bind "2" "say i own!" :)
aleborgMedlem sedan jan. 20013 341 inlägg Ok, koden för att kunna se hur många som är online och vilka som är inloggade:
global.asa
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
' Set our user count to 0 when we start the server
Application("ActiveUsers") = 0
Application("active_users")=""
End Sub
Sub Session_OnStart
Session("Usname")=""
' Change Session Timeout to 20 minutes (if you need to)
Session.Timeout = 10
' Set a Session Start Time
' This is only important to assure we start a session
Session("Start") = Now
' Increase the active visitors count when we start the session
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
' Decrease the active visitors count when the session ends.
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
un=Session("Usname")
if un<>"" and Application("active_users")<>"" then
tmp=Application("active_users")
idx=instr(tmp,un & "*")
tmp2=left(tmp,idx-1) & right(tmp,len(tmp)-idx-len(un))
Application("active_users")=tmp2
end if
End Sub
</SCRIPT>
efter kontrollen i databasen efter inloggnings namnet:
uname=rs("Username")
Session("Usname")=uname
Application("active_users")=Application("active_users") & uname & "*"
koden för att kolla om ett användarnamn är online:
user_array=split(Application("active_users"),"*")
xx="<img src=pics/offline.gif width=16 height=16>"
for t=0 to ubound(user_array)
user=user_array(t)
If rs("Username") = user Then xx="<img src=pics/online.gif width=16 height=16>"
next
Response.Write xx
logout:
un=Session("Usname")
if un<>"" and Application("active_users")<>"" then
tmp=Application("active_users")
idx=instr(tmp,un & "*")
tmp2=left(tmp,idx-1) & right(tmp,len(tmp)-idx-len(un))
Application("active_users")=tmp2
end if
Session.Abandon
för att visa antalet online:
<%= Application("ActiveUsers") %>
Tror jag fick med allt nu
[Redigerat av aleborg den 29 mar 2001]