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

Simular Global.asa ? se puede? desesperado !

Estas en el tema de Simular Global.asa ? se puede? desesperado ! en el foro de ASP Clásico en Foros del Web. El problema que tengo es el siguiente: yo estoy programando un sitio en ASP. Todo funciona bien. El problema se me presento cuando estoy justamente ...
  #1 (permalink)  
Antiguo 11/09/2007, 05:32
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Simular Global.asa ? se puede? desesperado !

El problema que tengo es el siguiente: yo estoy programando un sitio en ASP. Todo funciona bien. El problema se me presento cuando estoy justamente casi por terminar. El sitio tiene un login, o sea para entrar el usuario escribe un nombre de usuario y una contraseña. Yo quiero que el login sea para una sola persona a la vez, osea si hay alguien logeado y alguien se logea con el mismo usuario y contraseña no le permita ingresar.

Para esto lo que hice fue que cuando entra el primer usuario, una variable application("login") se pone en "ocupado" , y cuando se desconecte esta se ponga en "desocupado", por lo tanto cuando trate de entrar otro usuario mientras este esta logeado, como application("login") va a estar "ocupado" no lo va dejar entrar hasta que el primero se desconecte y se ponga en "desocupado" nuevamente.

Como hago esto?
Cuando verifico que el usuario y contraseña son correctos, lo mando a donde corresponde, y pongo application("login")="ocupado" .
El problema esta especificamente en que la unica forma de asegurarse de que cuando el usuario cierre la ventana y la variable application se ponga en "desocupado" nuevamente es mediante el Global.asa, asi:

...
Sub Session_OnEnd
Application("login")="desocupado"
End Sub
...

Pasa que no importa como lo hagas, no anda ! .
Por lo que anduve leyendo por ahi la gente de Microsoft reporto esto como un bug del Server 2003 con Service Pack 2, que es justamente lo que usa mi hosting pago.

Y ahora que hago? que yo sepa no hay forma de simular la funcion del Sub Session_OnEnd en el global.asa.

Nota: este bug es para ASP y no para .NET
  #2 (permalink)  
Antiguo 11/09/2007, 13:28
Avatar de JoshMex
Moderador Webhosting
 
Fecha de Ingreso: enero-2006
Mensajes: 4.057
Antigüedad: 19 años, 3 meses
Puntos: 166
Re: Simular Global.asa ? se puede? desesperado !

El bug que comentas es un problema con las variables de session y radica en que no se liberan pero creo que el problema está en el código.

Si lo haces como muestras sólo una persona podrá estar en el sistema a la vez; es decir, así sea diferente el usuario y con otro login no podrá iniciar sesión.

Por ejemplo, si el usuario juan ingresa, el usuario carlos no podrá hacerlo.
__________________
JoshMex
Desarrollador Plataforma Microsoft / Windows / ASP / ASP.NET / SQL Server
Es inútil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos
  #3 (permalink)  
Antiguo 11/09/2007, 17:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Es verdad lo que dices, pero es porque puse como ejemplo el caso de que solo una persona sea administrador y tenga un login. Para el caso real identificaria de que usuario es el login que esta "ocupado".

Volviendo a la pregunta inicial, si no anda el Sub Session_OnEnd, no hay nada que pueda sustituirlo verdad?
  #4 (permalink)  
Antiguo 11/09/2007, 20:00
Avatar de wamoretti  
Fecha de Ingreso: febrero-2002
Ubicación: Lima
Mensajes: 34
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: Simular Global.asa ? se puede? desesperado !

Una opción es agregar un par de campos a tu tabla de usuario:
campo1
flag char(1)

campo2
ip char(15)

para el campo flag, usar = 1 (ocupado) cuando se loguea y usas = 0 (desocupado) cuando sale correctamente de la aplicación.

Ahora, si no sale correctamente, por que puede que cierre la ventana con clic en X, o Alt+F4, o desde el menú Archivo ... cerrar. Puedes guardar la dirección ip, para cuando salga en forma incorrecta, solo pueda ingresar desde la dirección que estuvo usando antes.
  #5 (permalink)  
Antiguo 12/09/2007, 06:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Si siempre saliera correctamente seria algo facil, el problema es que justamente todos salen cerrando la ventana.

Lo de guardar la ip no me sirve porque si entra desde otra pc, por ejemplo la de su trabajo, no lo dejaria entrar.

En pocas palabras nesecito una funcion que modifique una variable al momento en que el usuario cierre la ventana. Hay algo asi que no sea el global.asa ?

Quiero aprovechar para expresar la idea de que no puede ser que Microsoft, responsable principal del lenguaje ASP, deje un bug sin arreglar en una funcion TAN INRREMPLAZABLE E IMPORTANTE como el Global.asa, simplemente no me cabe en la cabeza, seria tiempo de empezar con PHP.....
  #6 (permalink)  
Antiguo 12/09/2007, 08:45
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Simular Global.asa ? se puede? desesperado !

preguna

necesitas hacer que cada usuario (jose, pedro, ana) tenga una unica sesion en tu portal?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 12/09/2007, 08:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Si, en definitiva lo que estoy haciendo es muy parecido a un email, tomemos yahoomail por ejemplo:
Si entras con tu usuario y tu contraseña y estas viendo los mails, nadie mas puede entrar con tu usuario y contaseña hasta que tu salgas, ya sea con cerrar session o cerrando la ventana del explorer.
Simplemente eso.
Es algo muy sencillo de hacer.....................cuando anda el global.asa.....

El problema es que no encuentro otra forma de hacerlo que no utilice el global.asa
  #8 (permalink)  
Antiguo 12/09/2007, 11:22
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
De acuerdo Re: Simular Global.asa ? se puede? desesperado !

oki te comento como lo he hecho yo pero antes de nada te quiero haer una observacion

yahoo si permite ingresar mas de una vez a su cliente de correo electronico, puedes cargar IE y FireFox y entras en los dos y en las dos ventanas (sesiones diferentes de navegador - misma IP) te deja trabajar en las dos

luego con dos maquinas ingresas a ayahoo (diferente sessionid y diferente IP) y SI te deja tener dos sessiones en el cliente de correo.

Testiado, el correo si te deja tener dos ventanas abiertas para el mismo usuario....

en otro orden y en lo que nos ocupa

OJO: MSN Messenger y Yahoo Messenger si solo permiten un usuario online.

Pero bueno...

hace esto.

Cita:
- adiciona a tu base un campo llamado session, varchar
- verificas si el usuario existe.
- si es valido user and pass - retraes el sessionid, este valor te lo asigna el server al que te has conectado <%SessionID = Trim(Session.SessionID) %> el valor es unico por conexion a servidor
- creas una función validar y la llamas en todas tus paginas que contenga
<%
'retraigo de nuvo el sessionid de la ventana en la que esto (no lo pases por URL porque no tiene sentido)
SessionID = Trim(Session.SessionID)
'retraigo el id del usuario, este si lo paso por URL
id_usuario = request("id_usuario")

'luego hago la consulta a la base de datos
SQLsid="SELECT * FROM TuTabla WHERE id_usuario = "& id_usuario &" and sessionID = '"& sessionID &"' "
'ejecuto rs
%>


no pude seguir con codigo asi que lee please

si el RS es EOF o BOF quiere decir que no hay registros que coincidan, osea tiene un sessionid el navegador que es diferente, por ende inicio sesion en otro lago o en otra ventana de navegador, y entonces saco al usuario

<%
response.redirect("login.asp?txterror=Lo siento pero su sesion se ha terminaro dado a que hemos comprobado que inicio sesion en otra maquina ó su tiempo ha expirado en esta sesion por inactividad")
%>


caso contrario lo dejo ontinuar, esto lo valido en todas las paginas.

que logro, que si se conecta en la misma pc incluso con IE primero, al sitio, y luego carga FireFox y se loguea, como el sessionid que actualizo es el ultimo ingreso, cuando trate de hacer algun proceso en la primer ventana IE lo saque y le presente ese error.

Espero te sirva

suerte



__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 12/09/2007, 17:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

JuanRAPerez, te agradezco tu respuesta y el tiempo.
Te comento que apesar de que tu codigo me sirve para otra de las cosas que queria hacer, no me soluciona este problema especificamente.

Me parece que no quedo claro lo que yo estoy preguntando:

-Una sola persona puede estar logeada a la vez.

-Cuando un usuario logeado se va del sitio, se puede ir de dos formas, la primera es con un LogOut, y la segunda es cerrando la ventana del explorer.

-Para habilitar el login nuevamente, tengo que saber efectivamente que el usuario que estba logeado hasta hace un instante se acaba de ir.

-Con el logout es facil ya que pongo en alguna variable HayAlguienLogeado = False y listo.

-En el caso de que el usuario cierre la ventana del explorer se usa el Global.asa, que lo que hace es detectar cuando el usuario cierra la ventana y pone la variable HayAlguienLogeado = True

AHI es donde tengo el problema, porque el Global.asa no anda y nesecito hacer algo para que cuando el usuario cierre la ventana, pueda modificar la variable HayAlguienLogeado .
  #10 (permalink)  
Antiguo 12/09/2007, 18:19
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Simular Global.asa ? se puede? desesperado !

¿No será que no has especificado un timeout para las sesiones? Al no especificar un timeout, tomará el default que es 20 min, de manera tal que la sesión no expirará hasta dentro de 20 min después que el usuario abandonó el sitio, por ende causa el efecto de que no funciona. Trata probando a 1 min de inactividad y veamos que pasa, después tendrás que jugar un poco con el tiempo para ver cuál es el timeout óptimo.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 12/09/2007, 20:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Pero que yo tenga entendido, la session termina cuando se acaba el TimeOut o cuando el usuario cierre la ventana o no funciona asi?
  #12 (permalink)  
Antiguo 12/09/2007, 21:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Simular Global.asa ? se puede? desesperado !

Bueno simplemente por lógica, cómo le comunicarías al servidor que ya cerraste la ventana? simplemente no lo hace, por eso existe el session.timeout, si no hay interacción entre el cliente y el servidor en x número de minutos, el servidor destruye el id de sesión.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 13/09/2007, 05:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Ahh, yo crei que al cerrar la ventana se comunicaba y entonces cerraba la session.

Ahora que me aclaraste esto me cambia el panorama y me surge una nueva duda:

Supongamos que hice una variable que se pone en True cuando el administrador esta logeado y se pone en False cuando termina la sesion , usando para esto el global.asa. Asi mientras esta en True, nadie se puede conectar. Y cuando cierra la ventana y pasa el tiempo del timeout, el global.asa vuelve a poner la variable en False.


Entonces supongamos que pongo el timeout a 5. Si el que estaba logeado cierra la ventana por error y quiere entrar nuevamente porque se olvido de modificar algo, tendria que esperar 5 minutos hasta que se dispapre el Sub Session On end del global.asa para poder entrar nuevamente?

Les agradezco que me esten ayudando porque nesecito terminar esto, es lo unico que me falta !!!
  #14 (permalink)  
Antiguo 13/09/2007, 07:44
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Simular Global.asa ? se puede? desesperado !

no no tendra que esperar 5 minutos, los 5 minutos de espera se refiere a:

tu administrador se loguea, espera 3 minutos antes de dar un click en un enlace, al dar el click a esos 3 minutos, el timeout se setea en 0 y empieza a contar otros 5 minutos

pero si da un clic y pasan 5 minutos, la session se destuye, al darle click tendras que enviarlo a una pagina que diga error su tiempo ha expirado, o simplemente el navegador le enviara un error.

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #15 (permalink)  
Antiguo 13/09/2007, 07:50
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Simular Global.asa ? se puede? desesperado !

y si lo que quieres lograr es que cuando un adminsitrador este logueado no deje entrar, puedes hacer lo siguiente.

- cuando un administrador se logue, pon una bandera en la tabla
- lee la bandera
- no dejes que nadie entre si la vandera es "si" por ejemplo

con relacion a cerra la ventana
- puedes usar un javascript que te diga "estas seguro que queires cerrar la ventana", y que en lugar de ello te diga "deves salirte apropiadamente del sistema, da clic en cancelar de esta ventana y selecciona la opción "Abandonar el sistem", gracias!"

el que yo uso es este

Cita:
<head>
.....
<script language=Javascript>
function AskFirst() {
event.returnValue = "Si estas escuhchando la transmisión el línea y cierras esta ventana, dejaras de escucharla!"
}
</script>
</head>

<body ..... onbeforeunload="AskFirst();" .... >
y si no quedo claro es porque no preguntas claro :P

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #16 (permalink)  
Antiguo 13/09/2007, 08:08
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

JuanRAPerez, tu solucion es muy parecida a lo que tenia pleaneado, siguiendo tu razonamiento:

Y si un usario logeado cierra la ventana y a pesar de avisarle con el alert de javascript el usuario cierra la ventana igual, quedaria la bandera en "si" en la tabla.

Luego nadie mas podria ingresar porque quedo la bandera en "si".
  #17 (permalink)  
Antiguo 13/09/2007, 08:37
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Simular Global.asa ? se puede? desesperado !

pregunta para los que saben....


"si yo pongo una alertar con botones , puedo detectar a que boton le dio click, si le dio click a ok para salirse, puedo disparar una consulta a la base con el update a "no" para ese campor?"

no se si me explique pero si con javascript cuando le de click a cerrar al navegador le alerto y dependiendo lo que seleccione disparo un SQL a mi base

Se me ocurre eso ...

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #18 (permalink)  
Antiguo 13/09/2007, 11:02
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Simular Global.asa ? se puede? desesperado !

La verdad que en mi opinión no existe una buena manera de manejar esto en ASP, quizás lo que yo intentaría es hacer un frame invisible que se esté recargando cada 30 segundos y establecer el session.timeout a 1 minuto, de modo tal que al cerrarse el explorador, solo tendrá que esperar menos de un minuto para reingresar, que conste que es solo una teoría, afortunadamente nunca me he visto en la necesidad de hacer esto.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #19 (permalink)  
Antiguo 13/09/2007, 11:05
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Simular Global.asa ? se puede? desesperado !

si suena itenresante....
__________________
JuanRa Pérez
San Salvador, El Salvador
  #20 (permalink)  
Antiguo 13/09/2007, 13:11
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Sinceramente no crei que algo tan basico e importante sea tan complicado. Crei que no lo podia lograr a causa de mi ignorancia, pero ahora que ustedes que son unos genios del tema no me pueden ayudar comienzo a desesperar.....

Les cuento en unas lineas mi problema en general:

Estoy diseñando un sitio en el cual un administrador puede entrar y manipular datos. Al ser estos datos bastantes, es logico y casi una consecuencia que el administrador le de la clave a otra persona para que le ayude desde otra maquina.

Problema 1: va a llegar el momento en que los dos quieran modificar el mismo articulo o que alguno borre un articulo que otro estaba por terminar de modificar, asi empiezan los errores. Cosa ya discutida en este post sin llegar a ninguna una solucion:
http://www.forosdelweb.com/f15/fijar...-entrar-498215

Problema 2 : la solucion al problema 1 es muy facil, que solo se puede loguear una persona a la vez por cada usuario y contraseña, justamente lo que estamos viendo en este post y que no se puede.

Pasa que ninguno tiene solucion por lo siguiente: cuando el usuario cierra el explorer desde la ventana o bien apaga la pc sin mas, no hay bandera que sirva, porque justamente queda en un estado “ocupado” cuando en realidad el usuario acaba de salir. Para colmo la unica solucion que es el Global.asa anda mal , cosa que no puedo entender que una funcion tan irremplazable como la que realiza el global.asa no ande !! Microsoft ! Hola !

Entonces, como solucionan todos este problema ? a nadie se le presento algo asi ? Entienden por que estoy tan perdido ?

Por lo menos solucionarlo con .net version 1 que lo soporta mi host.
  #21 (permalink)  
Antiguo 13/09/2007, 13:49
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Simular Global.asa ? se puede? desesperado !

Primero que nada, lo que intentas no es para nada sencillo ni trivial y de repente me salta a la mente que atenta un poco contra la naturaleza multi-usuario de las aplicaciones online, bueno, la posible solución:

Hazte una tabla como ya te recomendaron, donde guardes el session.id del usuario en cuestión, -un solo registro- si ese id es el mismo que el de la sesión, le permites continuar, si no lo es, matas su sesión y lo envías a "loguearse" de nuevo, de modo tal que solo aceptará un login cada vez, esta validación la tendrás que hacer cada vez que el usuario logueado quiera alterar la base de datos, es una solución bastante fea por cierto.

La segunda opción es replantear tu sistema para tener la habilidad de asignar a diferentes usuarios, diferentes niveles de permisos.

La tercera opción es comprobar la hipótesis planteada en el post #18

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #22 (permalink)  
Antiguo 14/09/2007, 11:30
 
Fecha de Ingreso: diciembre-2004
Mensajes: 139
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Simular Global.asa ? se puede? desesperado !

Bueno, antes que nada les queira agradecer a todos los que aportaron con su granito de arena.
La verdad la solucion que voy a implementar no es ninguna novedad, es mas bien algo precario que no queria hacer porque crei que habia una forma mejor, pero como parece no haberla, opte por esta que es la menos complicada, y la explico para tratar de aportar algo , quien sabe por ahí le sirve a alguien:

Para hacer mas corto el ejemplo de lo que es en mi sitio supongamos que el usuario solo puede hacer 2 cosas, modificiar y eliminar.

Antes que nada creo en la Tabla de los articulos un campo que se llame “Ocupado”



AL MODIFICAR UN ARTICULO

1-Al entrar un usuario a modificar el articulo, primero se fija que este registro exista, sino existe es porque otro usuario acaba de borrarlo, pero como este usuario que esta modificando nunca actualizo la lista, es articulo seguia ahí, pero al haber sido borrado, lo mando a “hasidoborrado.asp”

2-Seguimos: Si existe el articulo a modificar, me fijo si la tabla Ocupado esta vacia.Si esta vacia, lo dejo continuar y pongo en la tabla Ocupado la fecha y hora de ese momento.

3-Al terminar de modificar , vacio nuevamente el registro Ocupado.

AL ELIMINAR UN ARTICULO

1-Me fijo que exista, porque otro lo puede haber eliminado recien.

2-Me fijo que no este opcupado, porque otro puede estar modificandolo mientras este lo quiere borrar.

3-Y si nadie lo esta usando, lo pongo como ocupado, asi mientras este se decide si borrarlo, nadie puede ponerse a borrarlo o modificarlo.




En pocas palabras: mientras estamos modificando o estamos por eliminar un articulo, el campo Ocupado tiene un valor, entonces nadie puede entrar hasta que terminemos lo que estamos haciendo y el campo Ocupado se vacie nuevamente.

Este sistema funciona a medias, justamente por el molestisimo caso en que alguien entre a modificar un articulo, este se ponga como ocupado y antes de terminar de modificarlo y que se ponga desocupado nuevamente, cierre la ventana del explorer o se le apague la computadora o le caiga un meteorito en el techo y lo desconecte de internet.

En este caso nunca se vacia el campo Ocupado, por lo tanto el articulo queda bloqueado para siempre...... lo cual no es bueno.....

No hay solucion perfecta, yo lo que hice es que pasados unos 20 minutos, si el campo de un articulo todavia esta ocupado, lo ignore y entre igual.
Justamente por eso cuando entra a modificar o eliminar, no pone un True o un False en el campo Ocupado, sino la fecha y hora.

Entonces lo unico que cambia es el paso 2:

2-Me fijo si el campo ocupado tiene algun valor, si no tiene ninguno me deja entrar.
En el caso de que si tenga un valor (una fecha con la hora) y esta hora sea de hace mas de 20 minutos, pasa igual, si todavia falta no lo deja pasar.

Uno puede pensar que debe ser muy molesto para un usuario tener que esperar 20 minutos para poder entrar, pero hay que tener que para que pase esto, las posibilidades son muy remotas, primero tienen que conectarse dos administradores al mismo tiempo, ademas tienen que querer modificar el mismo registro en el mismo momento y sumado a esto, el primer usuario que entro tiene que cerrar justo ahí la conexión con el sitio, es bastante improbable, aunque no imposible.

Cabe tambien aclarar: uno puede pensar que si el primer usuario en entrar es un lento y tarda mas de 20 minutos en terminar de modificar, el otro ya va a poder entrar y devuelta se presenta el error, pero eso se soluciona haciendo estos 20 minutos unos minutos mas largos que el session.timeout , asi cuando el segundo se pueda meter, el primero va a estar obligado a logearse nuevamente para poder entrar a modificar.

Bueno, es largo pero detallado, espero que a alguien le sirva en algun momento.
  #23 (permalink)  
Antiguo 14/09/2007, 11:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Simular Global.asa ? se puede? desesperado !

Soluciones hay muchas y creo que vas por el camino correcto, ya que estás ampliando el panorama, yo te sugeriría una tabla separada de items bloqueados que se bloqueen cada vez que el usuario los edita y se desbloqueen al ser aceptados, de esa manera solo tienes que hacer un query a esa tabla para saber si están bloqueados o no, y también puedes tener una vista separada de items bloqueados que un usuario con permisos superiores pueda desbloquear.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 17:34.