Forsoker gora min global.asa fil sa den ska logga antal inloggade och antal gaster (dvs, icke inloggade)... Men far bara ut gaster nar jag skriver ut session("guest") och session("medlem") blir liksom tom, inga felmess.... men ni kan la kolla? sen ocksa, hur far man namnet pa de personer som ar inloggade?
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Session_OnStart()
If session("usr") = "" then
session("guest") = +1
session("medlem") = "0"
else
session("medlem") = +1
session("guest") = "0"
End If
End Sub
Sub Session_OnEnd
session("guest") = -1
session("medlem") = -1
End Sub
</SCRIPT>
<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 = 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("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>
Men crisse lille, du vet väl mycket väl vad värdet blir i denna sessionsvariabel? ;) Det blir givetvis -1. Det är en tilldelning du gör, inte en uträkning.
Och precis som jesper beskriver, skall du använda application, inte session. :)
men vadåååååååååååååååååå :) skulle bara testa dig override, fick ju skriptet av dig, eller? :e
har allt som jeppe skriver osa men, det blir ju ingen utskrivning, ska det komma nagot aven om man inte ar inloggad? :D Har aven loggat in, men inget hander.... :(
Det blir alltsa "tomt" nar man skriver ut det....
Det ska vara Next dar ocksa pa defineringen av variablen??? La till det iaf.. ar inte haj pa Next osa har inte fattat det aven om jag har en liten asp bok har... nagon som vill forklara, men forst problemet :D
Glöm inte att plocka bort dem också, när de loggar ut ;)
Nåt sånt här:
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
jo, det hade jag. men problemet ar att den visar ju bara anvandarnamnet nu, funkade med overrides losning... men assa, jag vill ju ha sa det star... Gaster: 0, Medlemmar: 1<br>"anvandarnamn"
Det skall väl bara vara att skriva: Response.write Application("activeusers") för att få ut samtliga gäster. Vill du ha medlemmarna så kanske du kan loopa alla inloggade och ta de minus samtliga surfare så får du antalet "gäster".
Jag är inte helt säker, jag testade att lägga till en application som hette: application("membersOnline")
Den la jag på alla ställen i global asa där application("activeusers") låg.
Den enda skillnaden var att jag la till
application("membersOnline")=application("membersOnline")+1
på signin-sidan och
application("membersOnline")=application("membersOnline")-1 på sigoutsidan.
...Jag kanske är ute och åker pulka nu men ändå.
Vill du sedan presentera alla på sidan så borde det bli ungefär så här:
vi gick nog om varandra dar... kolla nu sa har ser allt ut for mig:
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")=""
application("membersOnline")
End Sub
Sub Session_OnStart
Session("usr")=""
' 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("membersOnline") = application("membersOnline") + 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("membersOnline") = application("membersOnline") - 1
Application.UnLock
un=Session("usr")
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>
include_check.asp
session("usr") = strUser
session("level") = rs2("level")
session("sessionsID") = rs2("ID")
uname=strUser
application.lock
if instr("*" & Application("active_users"), "*" & uname & "*") = 0 then
Application("active_users")=Application("active_users") & uname
application("membersOnline")=application("membersOnline")+1
end if
application.unlock
och skriver sedan ut sa har:
user_array=split(Application("active_users"),"*")
for t=0 to ubound(user_array)
next
Response.write "Medlemmar online: "&application("membersOnline") &_
" Gäster Online: " & application("activeusers") - application("membersOnline")