webForumDet fria alternativet

Medlemar online med global.asa

ASP

4 svar · 304 visningar · startad av calson

Medlem sedan dec. 2003487 inlägg
Frågan#1

Hej
Jag använde detta skript till and räkna aktiva besökare.
Nu vill jag bara räkna antalet inloggade.

Är man inloggad sätts session("id") = id så jag satte in en fråga i min global.asa som frågar om personen är inloggad eller inte.

Som det är nu står det att 0 personer är online fast jag själv är inloggad?

Någon som kan se felet med min global.asa?

<SCRIPT Language="VBScript" Runat="Server">

Sub Application_OnStart
Application("online") = 0
End Sub

  Dim objConr, objRs
  Dim strSql
  Dim intMax

Sub Session_OnStart
  If Not session("aktiv") = "1" then
    Session.Timeout = 1

   [B] If session("id") <> "" then[/B]

      Application.Lock
      Application("online") = Application("online") + 1
      Application.Unlock
      Session("aktiv") = "1"

    End If

End If

  Set objConr = Server.CreateObject("ADODB.Connection")
  objConr.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=******; DATABASE=*****; USER=******; PASSWORD=*******; OPTION=3;"

    strSql = "Select * from tblAktiva"
    set objRs = objConr.execute(strSql)

      if objRs("intMax") <> 0 then
	intMax = objRs("intMax")
      else
 	intMax = 0
      end if

  objRs.close
  Set objRs = nothing

    if Application("online") > intMax then
	intMax = intMax + 1
	objConr.execute("Update tblAktiva Set intMax=" &Application("online"))
    end if

  objConr.close
  set objConr = nothing

  Application.Lock

    Application("stats") = "Just nu är det " & Application("online") & " st inloggade på sidan"

  Application.Unlock

End Sub

Sub Session_OnEnd
  Application.Lock
  Application("online") = Application("online") - 1
  Application.Unlock
  Session("aktiv") = "0"
End Sub

</SCRIPT>

Tack på förhand

Medlem sedan juni 200032 967 inlägg
#2

I Session_OnStart är det inga sessionsvariabler som har något värde. Du kan alltså ta bort if-satserna.

Varför sätter du en sessionsvariabel i Session_onEnd?

Om du bara ska räkna inloggade så får du öka på nuffran i koden som sköter inloggningen, och minska när personen loggar ut.

edit: in!=ut.

Medlem sedan dec. 2003487 inlägg
#3

med utloggningen menar du inloggningen antar jag :P

Jag tänkte att det kanske gick smidigare med global.asa
Men det går ju att lösa utan, som sagt.

sessionen i onEnd skall inte vara där, tack

Medlem sedan juni 200032 967 inlägg
#4

Självklart skall "utloggningen" vara "inloggningen". Ibland tänker hjärnan fortare än fingrarna skriver. ;)

Medlem sedan dec. 2003487 inlägg
#5

känner igen den symptomen :)

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)