Por que en Session_OnStart si y no en Session_OnEnd

[email protected]
29 de Octubre del 2003
Hola,

La verdad es que ya estoy un poco hasta las narices del problema que estoy teniendo.

Os cuento:

Quiero controlar los usuarios registrados que estn en la web durante lo que dura su sesin. Como podeis imaginaros no tiene ningn misterio lo que quiero hacer, ya que usando global.asa y los mtodos Session_OnStart y Session_OnEnd todo debera ir bien.

No s que es lo que estoy haciendo mal, pero consigo aadir lo usuarios en Session_OnStart en un array que tengo en Application, pero no logr eliminar al usuario del array en Session_OnEnd.

Os adjunto el cdigo a ver si se os ocurre algo. Muchas gracias.

Esta un poco catico por que he hecho muchas pruebas y claro ...

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
Application("Visit") = 0
Application("Active") = 0
Dim usuarios
usuarios = array("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","")
Application("Usuario") = usuarios
Dim idusuarios
idusuarios = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
Application("IDUsuario") = idusuarios
End Sub

Sub Application_OnEnd
End Sub

Sub Session_OnStart
Session.Timeout = 1
Session("Start") = Now

Application.lock
Application("Visit") = Application("Visit") + 1
intTotal_visitas = Application("Visit")
Application.unlock

Session("VisitorID") = intTotal_visitas

Application.lock
Dim usuarios
usuarios = Application("Usuario")
Dim idusuarios
idusuarios = Application("IDUsuario")
Dim usuario
if (Request.Cookies("mia")("si") <>"") then
usuario = usuarios(0)
i = 0
while ((usuario <> "") and (usuario <> Request.Cookies("mia")("si")) and (i < 50))
i = i+1
usuario = usuarios(i)
wend
if ((usuario <> Request.Cookies("mia")("si")) and (i < 50)) then
usuarios(i) = Request.Cookies("mis")("si")
idusuarios(i) = Session("VisitorID")
else
idusuarios(i) = Session("VisitorID")
end if
Application("Usuario") = usuarios
Application("IDUsuario") = idusuarios
end if
Application("Active") = Application("Active") + 1
Application.unlock

End Sub

Sub Session_OnEnd
Application.lock
Application("Active") = Application("Active") - 1
Dim idusuarios
idusuarios = Application("IDUsuario")
Dim usuarios
usuarios = Application("Usuario")
Dim nuevo()
redim nuevo(30)
Dim i
i = 0
while (usuarios(i) <> Request.Cookies("mia")("si")) and (i < 30)
nuevo(i) = usuarios(i)
i = i+1
wend

while ((i < 29) and (CInt(idusuarios(i)) > 0))
nuevo(i) = usuarios(i+1)
i = i+1
wend
nuevo(30) = ""
Application("I")= nuevo(0) + CStr(i)
Application("Usuario") = nuevo
Application.unlock
End Sub
</script>


jano
29 de Octubre del 2003
tengo el mismo atado con el Session_OnEnd no me lo reconoce ya estoy chato :(