Foros del Web » Programando para Internet » ASP Clásico »

Usuarios activos.

Estas en el tema de Usuarios activos. en el foro de ASP Clásico en Foros del Web. Hola a todos necesito una ayuda tengo una Base de Datos en SQL Server en donde tengo una tabla de usuarios en el cual tengo ...
  #1 (permalink)  
Antiguo 02/09/2003, 10:08
Avatar de grovervas
Usuario no validado
 
Fecha de Ingreso: junio-2002
Ubicación: Perú
Mensajes: 306
Antigüedad: 22 años, 11 meses
Puntos: 0
Pregunta Usuarios activos.

Hola a todos necesito una ayuda tengo una Base de Datos en SQL Server en donde tengo una tabla de usuarios en el cual tengo un campo de tipo entero que me sirve si el usuario esta activo o no, cada vez que un usuario ingresa al sistema el campo se pone en 1 para indicarme que esta dentro del sistema, y cada vez que sale esta en 0 para indicarme que salio pero el problema consiste en que cada usuario a veces solo cierra el navegador y al hacer eso se cierra la session pero no se ejecuta el script para actualizar a cero ese campo solo se ejecuta el script si el usuario hace click en el boton cerrar session o salir....pero no cuando se cierra el navegador.

Por ahi me dijeron de que tengo que hacerlo eso desde el global.asa pero en realidad no se en que parte para que cuando el usuario haya terminado su session ya sea presionando el boton o cerrando el navegador se actualice ese campo a cero.

Otra cosa como se crea el archivo global.asa o donde se encuentra, disculpen la ignorancia siempre he programado en ASP pero dificil trabaje con el global.asa
  #2 (permalink)  
Antiguo 02/09/2003, 12:11
 
Fecha de Ingreso: enero-2003
Ubicación: La Plata. Buenos Aires.
Mensajes: 9
Antigüedad: 22 años, 3 meses
Puntos: 0
Quizás te sea mas util usar el evento "onunload". Este se correrá (y con un poco de desarrollo bajaras al usuario de la base de datos) no solo al cerrar el navegador, sino también al pasar a algun sitio fuera del tuyo. espero te sirva.
  #3 (permalink)  
Antiguo 02/09/2003, 12:20
Avatar de grovervas
Usuario no validado
 
Fecha de Ingreso: junio-2002
Ubicación: Perú
Mensajes: 306
Antigüedad: 22 años, 11 meses
Puntos: 0
Si pero ese evento es propio del objeto application o tiene que ser programado dentro del global.asa, bueno seguramente en ese evento tengo que poner la consulta que actualice la informacion dentro de la Base de datos acerca del usuario.....
  #4 (permalink)  
Antiguo 02/09/2003, 14:05
 
Fecha de Ingreso: enero-2003
Ubicación: La Plata. Buenos Aires.
Mensajes: 9
Antigüedad: 22 años, 3 meses
Puntos: 0
es propio del objeto window y si, ahi debés poner la consulta que actualice la base de datos, teniendo la debida cuenta que solo actualice la base cuando cierre el navegador o pase a otro sitio...
  #5 (permalink)  
Antiguo 03/09/2003, 14:56
 
Fecha de Ingreso: mayo-2001
Mensajes: 87
Antigüedad: 24 años
Puntos: 0
estoy en el mismo problema no me gusta con onunload porque mi browser no funciona. Aparte a mucha gente no le gustan las ventanitas popup e instalan programas para que no salgan.

aqui esta el post que puse , con algunos codigos que e probado pero sin buenos resultados.
http://www.forosdelweb.com/showthrea...hreadid=150147


con global.asp quise hacerlo de esta manera pero no funciono :


<SCRIPT language= "Vbscript" runat= "server">

Sub Application_onStart
End Sub

Sub session_onStart

End sub

Sub session_onEnd
Set ConnObj = Server.CreateObject("ADODB.Connection")

DBRoot = "E:\webaspmibd.mdb"
DataBase = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& DBRoot
ConnObj.Open DataBase

no="0"
usercookie="14"
Sql = "Update Registros Set disponible='" & no & "' Where user='" & usercookie & "'"

ConnObj.Execute(Sql)

End Sub

</SCRIPT>

alguien hecha una manita que es interesante poder hacer esto.
  #6 (permalink)  
Antiguo 04/09/2003, 02:52
 
Fecha de Ingreso: septiembre-2003
Mensajes: 11
Antigüedad: 21 años, 8 meses
Puntos: 0
hola el global.asa es el fichero que controla las sesiones y eventos de aplicacion del IIs en un directorio web.
se encuentra o se deberia encontrar en el directorio raiz del sitio con el que estes trabajando. sino esta no pasa nada simplemente no lo utilizas las ventajas que proprociona, variables globlales , sesiones y otras cosillas.
busca en un manual de asp las apliaciones del globla.asa y vera que es muy util.
  #7 (permalink)  
Antiguo 04/09/2003, 02:56
 
Fecha de Ingreso: septiembre-2003
Mensajes: 11
Antigüedad: 21 años, 8 meses
Puntos: 0
para webpedaler
utiliza el codigo de sesion id para saber el nombre de la sesion que ha generado el usuario, metelo en una base de datos con el onsesion star, y cuando el usuario se va on sesion end ,o quitas y ya esta. el identificador de sesion lo almacenas en una variable global asi al ejecutarse el evento de sesion end solo tienes que generar la consuta sql con el Id de sesion y ya ta.
  #8 (permalink)  
Antiguo 04/09/2003, 08:11
Avatar de grovervas
Usuario no validado
 
Fecha de Ingreso: junio-2002
Ubicación: Perú
Mensajes: 306
Antigüedad: 22 años, 11 meses
Puntos: 0
Bueno creo que la ultima opcion si me parece algo razonable pues de esa manera puedo saber quienes estan con una sesion iniciada y quienes estan avandonando la sesion, voy a probar y vamos a ver que tal queda, gracias por su ayuda amigos....
  #9 (permalink)  
Antiguo 04/09/2003, 10:08
Avatar de grovervas
Usuario no validado
 
Fecha de Ingreso: junio-2002
Ubicación: Perú
Mensajes: 306
Antigüedad: 22 años, 11 meses
Puntos: 0
Sonrisa

Lo que estoy haciendo es esto dentro del global.asa espero que este en lo correcto.

sub session_onEnd()
Dim con,sql
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={SQL Server};Server=INTRANET;Database=intranet;Uid=sa;P wd=elorsa"
sql = "EXECUTE sp_LiberarSesion '" & session.SessionID & "'"
con.Execute(sql)
application.lock
application("num_usuarios") = application("num_usuarios") - 1
application.unlock
end sub

Pero tengo otra duda como se que hay errores en el archivo global.asa
  #10 (permalink)  
Antiguo 04/09/2003, 10:31
Avatar de grovervas
Usuario no validado
 
Fecha de Ingreso: junio-2002
Ubicación: Perú
Mensajes: 306
Antigüedad: 22 años, 11 meses
Puntos: 0
Tengo otra duda sobre cuando un usuario cierra la ventana del navegador ejecuta el evento onEnd del objeto session o del objeto application....
  #11 (permalink)  
Antiguo 25/04/2005, 07:18
 
Fecha de Ingreso: julio-2003
Mensajes: 120
Antigüedad: 21 años, 9 meses
Puntos: 0
Yo tengo la misma duda... En mi caso, si el usuario cierra la ventana del navegador en vez de pulsar el botón "Desconectar" de la aplicación no salta el evento Session_OnUnload del global.aspx, ni siquiera cuando pasa el TimeOut de la sesión.
¿Hay alguna forma de detectar que el usuario no está conectado cuando cierra directamente el navegador?
  #12 (permalink)  
Antiguo 23/05/2005, 05:19
Avatar de dabadubab  
Fecha de Ingreso: febrero-2005
Ubicación: Sant Hiuston
Mensajes: 157
Antigüedad: 20 años, 3 meses
Puntos: 0
hola. creo que al cerrar el navegador en ningún caso se ejecuta el onEnd ni del session ni del application object. El onEnd del session se ejecuta cuando se acaba la sesión con un session.end o algo asin (desde código ASP) o cuando passa el timeout (establecido por def. a XX seg.). OnEnd de application se activa cuando se reinicia el servidor o el IIS.

es un poco rollo pq no se puede definir con exactitud el evento cuando el usuario ACABA LA SESIÓN pq puede acabar:

- cerrando navegador
- logout (¿alguien lo hace?)
- canviando URL den barra dir.

¿Habría de intentar controlar estos 3 no?

saludos!!
__________________
Programando conseguiremos dinero... :-D
Pero Bush y sus secuaces seguirán aniquilando gente por dinero :Zzz:
Cómo mínimo no trabajemos para los poderosos :-p
  #13 (permalink)  
Antiguo 28/05/2005, 04:23
 
Fecha de Ingreso: julio-2003
Mensajes: 120
Antigüedad: 21 años, 9 meses
Puntos: 0
Esto q voy a decir es válido para ASP.Net. En el ASP clásico supongo que será parecido, pero no lo puedo asegurar.
Una aplicación ASP.Net puede tener tres estados de sesión distintos. El evento "Session_End" sólo salta cuando el estado de sesión está establecido como "InProc", pq es el único caso en q todo queda dentro del IIS y puede notificar al proceso que la sesión ha expirado.
Los otros dos estados son "StateServer" y "SQLServer". Según la documentación que he encontrado son más lentos, pero consumen menos memoria, y además permiten el funcionamiento de "granjas web", es decir, aplicaciones ASP alojadas en varios servidores. Como en los dos casos el control está fuera del IIS, el fin de las sesiones no se comunica a la aplicación.
En ningún caso el evento salta cuando el usuario cierra el navegador directamente.
  #14 (permalink)  
Antiguo 29/05/2005, 13:27
 
Fecha de Ingreso: noviembre-2004
Mensajes: 117
Antigüedad: 20 años, 6 meses
Puntos: 0
Diferencias entre Application y Session en global.asa

Application_OnStart se ejecuta cuando el primer usuario inicia sessión. Y Application_OnEnd cuando el ultimo usuario termina la sesión.

A diferencia de del Session_OnStart _OnEnd es que estos son llamados por cualquier usuario y Application solo lo llaman el primer y ultimo usuario.

Se abre un mundo de posibilidades, ¿no creeis?
__________________
Saludos a todos ;)

Fiat en Malaga
.. y ahora con CSS!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:29.