webForumDet fria alternativet

Online

7 svar · 316 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

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

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

nix det funkade inte, står "nononononono" jag undrar om övrig kod är rätt?

DeamerMedlem sedan mars 200116 inlägg
#4

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

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

:)
Jag lyckades faktiskt få ordning på min kod, han hade glömt lite saker :)

nakozMedlem sedan dec. 1999653 inlägg
#7

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

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]

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)