Foros del Web » Programando para Internet » PHP »

Concurrencia en php

Estas en el tema de Concurrencia en php en el foro de PHP en Foros del Web. Hola buenas a todos, me he estado leiendo los mensajes que hay referentes a la concurrencia en php. Lo estoy intentando aplicar para controlar que ...
  #1 (permalink)  
Antiguo 03/09/2006, 14:55
 
Fecha de Ingreso: enero-2005
Mensajes: 65
Antigüedad: 12 años, 11 meses
Puntos: 0
De acuerdo Concurrencia en php

Hola buenas a todos, me he estado leiendo los mensajes que hay referentes a la concurrencia en php.

Lo estoy intentando aplicar para controlar que un usuario no me entre a la zona de clientes si ya esta dentro (tb controlo el timeout). Lo que hago es que tengo un campo en mi bbdd que me dice en que momento le caduca la sesion a un usuario (usando time() + Xsegundos). Y comparo el time actual con el de mi bbdd y si este es mas grande, le digo que se vuelva a loggear.

Para el tema de timeout me va perfecto, xo para que no me entren dos veces el mismo usuario, me encuentro con un pequeño problema. Si el usuario se loggea y seguidamente, por equivocacion, cierra el navegador, no podra volver a loggearse hasta que pase el timeout...

En el caso que salgan de la zona de usuarios correctamente no habria problema ya que podria tener otro campo a 1/0 y cambiarlo cuando se desconecten ( o cualquier otra manera ). El problema está en si no se desconecta correctamente (es decir, que cierre el navegador a saco). Y no se me ocurre como controlarlo...

Muchas gracias a todos!!
  #2 (permalink)  
Antiguo 03/09/2006, 16:39
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Buenas,

Una manera que se me ocurre es usando el evento onunload de javascript, que se dispara cuando el usuario cierra el navegador. Tiene el inconveniente de que vas a depender en algo del cliente (que tenga javascript habilitado).

Pero me parece que no sería tan terrible, porque, primero, la mayoría de los usuarios navegan con js habilitado, segundo, en el peor de los casos el efecto no sería crítico (pérdida momentánea de acceso) y, de última, si alguien decide deshabilitarlo, bueno, se está resignando a perder funcionalidad (una "ayuda" que le estás dando, en este caso).

Podrías advertir que tu sistema requiere javascript para ser usado en toda su funcionalidad, y si se elige deshabilitarlo y no se sale del sistema como está indicado, se tendrá el inconveniente que marcás. Me parece que el "trato" es razonable.

Si te interesa investigar esta opción, te dejo un ejemplo muy simple.

Código HTML:
<html>
<head>
<script type="text/javascript" language="javascript">
function test() {
	window.alert("adiós");
}
window.onunload = test;

</script>
</head>
<body>
</body>
</html> 
Suerte
Califa

PD: También está el evento onbeforeunload. Ahora, leyendo un poco más sobre el tema (por ej. acá: http://p2p.wrox.com/topic.asp?TOPIC_ID=37129) puede que usar esa técnica no sea tan buena idea... Ahí sugieren otra opción, al final del thread; usar Ajax para mantener el estado de la sesión a intervalos más cortos...
Más sobre onbeforeunload acá: http://discuss.joelonsoftware.com/de...gn.4.357494.18

Última edición por califa010; 03/09/2006 a las 16:59
  #3 (permalink)  
Antiguo 05/09/2006, 13:19
 
Fecha de Ingreso: enero-2005
Mensajes: 65
Antigüedad: 12 años, 11 meses
Puntos: 0
Cluster, eres del que mas posts he leido en este foro. No se te ocurre como controlar el caso que comento con php??como lo controlas en tus aplicaciones en php??

Muxas gracias a todos!!;)
  #4 (permalink)  
Antiguo 05/09/2006, 13:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Pitu. Ver Mensaje
Cluster, eres del que mas posts he leido en este foro. No se te ocurre como controlar el caso que comento con php??como lo controlas en tus aplicaciones en php??

Muxas gracias a todos!!;)
Que haga más "post" no significa que de todos los temas conozcas o tenga algo que aportar.

No te refieras así en "público" a una persona determinada .. así sólo haces que el resto de gente que pudiera participar en cierta forma se sienta "ofendida". En ses caso usa el sistema de mensajería privada y pide ayuda por ese médio privado a quien corresponda (otra cosa será que te atiendan por ese médio).

Por lo demás sobre "concurrencia" por mi parte he hablado muchas veces sobre el tema y lo que pienso de el. Si usas el buscar del foro por ese término los veras.

Cita:
Para el tema de timeout me va perfecto, xo para que no me entren dos veces el mismo usuario, me encuentro con un pequeño problema. Si el usuario se loggea y seguidamente, por equivocacion, cierra el navegador, no podra volver a loggearse hasta que pase el timeout...
Eso es así .. A no ser que tu sistema maneje "administradores" (personas) que puedan tener un "panel de control" a mano para resolver ese tipo de incidencias .. el usuario tendrá que esperarse hasta tu tiempo definido como "timeout" o como lo quieras llamar. (Así pasa hasta en los "bancos" .. tu te equivocas N veces y si no llamas por teléfono a no sé que número .. no te lo desbloquean al inmediato .. por poner un ejemplo).

Depender de soluciones "javascript" no me agrada y las evito. Pero podrías usar esas soluciones .. si funcionan .. que bueno y sino, ahí estará tu "timeout" para desbloquear el login a tiempo determinado.

El caso es que el usuario conozca como trata este tema la aplicación para que no "reclame".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:13.