Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Duración de las visitas
 Foro Bloqueado  Tema Bloqueado


Autor Temas
Cayetano
Starting Member


14 Posts
Mensajes - 24 Nov 2006 :  09:33:17  Ver Perfil  Enviar Email
Buenas.

Necesito saber el tiempo de conexión de cada usuario a una página web en asp. Necesito hacer un control de este dato en una intranet.He intentado registrar la hora desde el Global.asa incluyendo el registro de la hora a la que se cierra en la función "Session_OnEnd", pero me ha fallado.

Gracias de antemano.

kennylive
New Member

España
73 Posts
Posted - 14 Dec 2006 :  18:17:56  Ver perfil  Enviar e-mail  Visit kennylive's Homepage
Hola cayetano un metodo muy sencillo para saber la conexion de cada usuario es el siguiente:

cada usuario tiene una session.id y tambien una IP, o bien si tiene una autentificacion de web sabemos el user y password. En caso de que no tenga auntentificacion de web y la ip sea variable usaremos cookies.

Con estos datos ya te valdria para saber cuanto tiempo estan en la web.

cuando el usuario entre en una base de datos añadimos el userid el nombre y la ip
si no existe lo creamos de nuevo en caso contrario usaremos el session end
cuando se produce una session creamos una variable tiempodeusuario=time() cuando se va
totaltiempo=time()-tiempodeusuario
ese dato lo pasamos a minutos y lo guardamos en la base de datos.
ejemplo:
en global.asa

<script language="vbscript" runat="server">

Sub Application_OnEnd()
' aqui guardar en una base de datos las variables el usuario y el tiempo que a estado
End SubSub

Application_OnStart
' aqui inicializamos mas variables si queremos
End SubSub

Session_OnStart
Application.Lock
Application("tiempo")=time()
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
aplication("totaltiempo")=time()-aplication("tiempo")
Application.UnLock
End Sub
</script>

Inicio Pagina

Cayetano
Starting Member


14 Posts
Posted - 28 Dec 2006 :  14:03:12  Ver perfil  Enviar e-mail
Buenas.

Muchas gracias, Kennylive.

Intenté hacer algo bastante parecido a lo que me indicas. En Session_OnStart insertaba la hora a la que se iniciaba la sesión pero no cuando cerraba la aplicación. El problema residía (me acabo de dar cuenta según escribo) en que la aplicación forma parte de una intranet, y como la intranet no se cierra, el código de Session_OnEnd no se ejecuta todavía.

Sin embargo lo solucioné de una forma más rudimentaria. La página se actualiza cada minuto debido a que muestra unos datos que se modifican constantemente. Lo que hago es:
creo una tabla con usuario/ip, hora de conexión, hora de cierre.

Al iniciar la web guardo el usuario, la hora de inicio y como hora de cierre la misma hora de conexión sumando un minuto(considero que una conexión de un minuto es una conexión en la que se abre y cierra la web).

Cada vez que se actualiza la web, modifico la hora de cierre, con lo que con una consulta sql se puede ver el tiempo en minutos de conexión a la web.Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar