Foros del Web » Programando para Internet » PHP »

login restringido a un usuario por vez...

Estas en el tema de login restringido a un usuario por vez... en el foro de PHP en Foros del Web. Lo ando buscando es una idea más bien, tengo un sistema de login basado en algun codigillo que encontré por aqui, valida usuario y password ...
  #1 (permalink)  
Antiguo 04/12/2006, 13:22
 
Fecha de Ingreso: mayo-2005
Ubicación: Mexico DF
Mensajes: 27
Antigüedad: 18 años, 10 meses
Puntos: 0
login restringido a un usuario por vez...

Lo ando buscando es una idea más bien, tengo un sistema de login basado en algun codigillo que encontré por aqui, valida usuario y password contra una BD en MySQL y establece sesión con $_SESSION; hasta ahi todo bien, el problema es que me solicitaron una modificación en la cual solo pueda registrarse un visitante cada vez con cada usuario y password, para lo cual he intentado grabado el ID de la sessión en MySQL al entrar y borrandolo en el logout, con lo cual funciona pero queda el hueco de que si al navegante se le corta la corriente electrica o su maquina se pasma, el accesso quedará bloqueado, ¿Alguna idea de como hacer lo que me propongo?
  #2 (permalink)  
Antiguo 04/12/2006, 13:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
pues la solución es borrar el registro de la base cuando pase cierto tiempo de inactividad, algo que podés revisar en cada ejecución de la página.
En vez de guardar el id de la sesión (o además de), deberías guardar la hora o el timestamp del último acceso, para comprobar el tiempo que ha pasado.

Con eso debería bastar.


Saludos.
  #3 (permalink)  
Antiguo 04/12/2006, 13:40
 
Fecha de Ingreso: mayo-2005
Ubicación: Mexico DF
Mensajes: 27
Antigüedad: 18 años, 10 meses
Puntos: 0
Me parece una buena idea voy a probarla veremos que sale, GRACIAS.
  #4 (permalink)  
Antiguo 06/12/2006, 22:17
 
Fecha de Ingreso: mayo-2005
Ubicación: Mexico DF
Mensajes: 27
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: login restringido a un usuario por vez...

Pues solo para actualizar, la solución fué precisamente colocar una bandera de usuario logueado, en la BD de MySQL, la cual es revisada y validada primero por la fecha del último ingreso, que si es del dia de hoy, se valida la hora y si el tiempo transcurrido es menor a la caducidad de la session entonces no le permito entrar si el tiempo de logueo es mayor a la caducidad de la session entonces le permitiré loguearse. Aún es muy es perfectible pero por ahora me funciona.
  #5 (permalink)  
Antiguo 08/12/2006, 23:11
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: login restringido a un usuario por vez...

Esta buena la solución.
Pero es frustrante que si se me corta la luz o simplemente cerré el navegador o reinicié la máquina y el dato quedó gusrdado en la base entonces no me ba a dejar entrar!!!

Eso no es bueno.
Lo que se me ocurre es lo siguiente:

Cuando el usuario se loguea ingresar un campo en la BD con el id de session y la hora. Cuando navega por el portal, vuelve a consultar la base y se fija si el id de session gusrdado corresponde al actual, entonces sigue navegando no pasa nada (esto pasa en la hipotética máquina 1).

Supongamos que el mismo usuario va a la máquina 2 y le logue nuvamente, pues en la base de datos se actualiza el valor con el id de sesion y navega sin problema.

Ahora y para terminar, vuelve a la máquina 1 y cuando intente navegar, el id de session actual no va a coincidir con el de la BD (porque se actualizó con la maquina 2) y como no coincide se aplica automáticamente un session_destroy()

El resultado es que el usuario siempre va a poder navegar, pero de a una conexión por vez ya que cuando inicie otra la anterior va a caducar.

Espero hacer explicado bien es una idea que se me ocurrió cuando lei tu post y que la voy a probar en mi portal.

Saludos!
  #6 (permalink)  
Antiguo 09/12/2006, 09:07
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: login restringido a un usuario por vez...

usermax, en tu solución hay un problema y es que ¿qué pasa cuando diferentes usuarios inician sesión simultáneamente?
Pues lo que pasaría es que los diferentes usuarios cancelarían la sesión del otro una y otra vez...

Permitir solo 1 usuario por vez no es lo mismo que decir que hay solo un usuario en el sistema

Por mucho que el navegador se cierre o la máquina se reinicie, eso no implica que la cookie se vaya a borrar, por lo tanto cuando la máquina se reinicie el navegador le mandará al servidor la misma cookie, con el mismo ID de sesión.

Limitar el número de usuarios simultáneos resultará en algún momento en que algún usuario no pueda ingresar por algún error como los que mencionás. Pero si es lo que se pide, se debe tener en claro que puede llegar a producir errores.
Después de todo, también puede pasar simplemente que el usuario se vaya del sitio sin cerrar la sesión, causando que mientras el sistema no la cancele, no pueda entrar nadie...


En fin, saludos
  #7 (permalink)  
Antiguo 09/12/2006, 13:10
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
De acuerdo Re: login restringido a un usuario por vez...

Es que implementando el modo que te dije no tiene que haber NINGUN error.
Por qué?

a) No depender de cookies es bueno, ya que si el usuario limpia las cookies o las mimas están deshabilitadas pues la página no funcionará como tu esperas.


b) No entendiste bien. Limitar la navegación a un usuario eso está mal obviamente. Pero no estaba hablando de eso.

En una tabla tienes los campos IDU (id de usuario) IDS (id de sesion) TIME (fecha y hora en que inició sesion)

Entonces cada usuario que se loguea es un campo nuevo en la misma tabla de control.

Como resultado todos los usuarios podrán navegar simultaneamente, pero cada uno no podrá abrir sesion en dos ordenadores al mismo tiempo.

Espero haber sido claro.

Hasta la próxima!

PD: ya lo implemente en mi portal y tengo 400 usuarios (aprox) navegando al mismo tiempo pero de una conexion por cada uno. Es más, también tengo el control de cuántos están online.
  #8 (permalink)  
Antiguo 09/12/2006, 13:16
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: login restringido a un usuario por vez...

Me olvidé de decirte:

En tu script debes controlar que el mismo usuario no se ingrese dos veces.
Cuando está navegando, consulta la tabla, y si el IDU existe entonces actualiza. Si no existe (al loguearse) ingrese el campo.

Cuando navega y hace algún movimiento en el site, deberás actualizar el TIME.

Luego con otro script recores la tabla con las conexiones y si el time ha superado el tiempo establecido por vos, entonces eliminas el campo de ese usuario y en tus Conexiones "online" habrá uno menos.

Conclusión: No debe haber NINGUN error y debe funcionar a la aperfección.
  #9 (permalink)  
Antiguo 09/12/2006, 19:28
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: login restringido a un usuario por vez...

Había entendido perfectamente, lo que sucede es que creo que entendí mal el problema inicial, asumí que el sistema debía permitir solo 1 usuario a la vez.
Te contesté partiendo de esa base, ahora me doy cuenta del error.

En el resto, completamente de acuerdo.


Saludos.
  #10 (permalink)  
Antiguo 12/12/2006, 07:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 2
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: login restringido a un usuario por vez...

Hola como estan, e estado leyendo sobre este tema y me gustaria que nos explicaras algo de codigo, para comprender mejor la tematica.

gracias y que estes bien.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:34.