Foros del Web » Programando para Internet » PHP »

Dos humanos con la misma clave!!!

Estas en el tema de Dos humanos con la misma clave!!! en el foro de PHP en Foros del Web. Lo que necesito es saber la lógica para hacer que 1 usuario solo esté activo (por medio de sesiones y PHP ) en 1 solo ...
  #1 (permalink)  
Antiguo 10/01/2012, 14:57
 
Fecha de Ingreso: enero-2012
Mensajes: 1
Antigüedad: 6 años, 10 meses
Puntos: 1
Pregunta Dos humanos con la misma clave!!!

Lo que necesito es saber la lógica para hacer que 1 usuario solo esté activo (por medio de sesiones y PHP ) en 1 solo computador a la vez.

Los usuarios los tengo logueados por bases de datos, y por ahora dos personas pueden usar el mismo usuario y clave en pc distintos.

He pensado en controlar la situación por tiempo. y matar la sesión cada 30 minutos por ejemplo, pero no se cumple el objetivo.

La otra opción es registrar en base de datos el usuario cuando entra al sistema y consultar esta tabla cada vez que otro Humano quiera ingresar con el mismo usuario del anterior. Pero tengo dudas ya que puede haber problemas si la persona no cierra correctamente la sesión y solo cierra el navegador...
lo otro es usar $_SESSION['MM_Username'] = $loginUsername; y compararlo con la base de datos y verificar las fechas de ingreso, pero puedo saturar el servidor ya que cada página que se usa tendría esta consulta....

Le he dado vuelta al asunto y revisado estos foros pero no encontré lo que buscaba... Si tienen ideas o ya pasaron por este problema, les agradezco sus comentarios.

Ate.
RJE.
  #2 (permalink)  
Antiguo 10/01/2012, 15:05
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 10 años, 7 meses
Puntos: 325
Respuesta: Dos humanos con la misma clave!!!

Bueno, puedes hacer una cosa...

Cuando un usuario "loguea", guardas su "session id" como "last_session".

Así, si una sesión "antigua" quiere volver a entrar con ese mismo usuario, que le diga "sesión caducada, vuelve a loguear". Y tendría q volver a loguear (al comprobar que el id de la sesion es distinto a last_session de ese user).

Es lo q se me ocurre a bote pronto ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 10/01/2012, 21:46
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 15 años, 3 meses
Puntos: 105
Respuesta: Dos humanos con la misma clave!!!

Holas,

Puedes registrar en tu BD el $_SERVER['HTTP_USER_AGENT'] y $_SERVER['REMOTE_ADDR'] del cliente y compararlo para que haya otra sesion con el mismo agente e ip.

Saludos
__________________
.: Gildus :.
  #4 (permalink)  
Antiguo 11/01/2012, 02:21
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 10 años, 7 meses
Puntos: 325
Respuesta: Dos humanos con la misma clave!!!

Cita:
Iniciado por gildus Ver Mensaje
Holas,

Puedes registrar en tu BD el $_SERVER['HTTP_USER_AGENT'] y $_SERVER['REMOTE_ADDR'] del cliente y compararlo para que haya otra sesion con el mismo agente e ip.

Saludos
Si usa dos ordenadores en su casa, tendrán la misma IP, y si usa el mismo navegador actualizado, el mismo agent... no? O.O
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 11/01/2012, 02:56
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 7 años, 5 meses
Puntos: 14
Respuesta: Dos humanos con la misma clave!!!

Se me ocurre agregarle un campo a usuario cuando loguee. Activo S/N. Cuando entras lo pones activo, cuando sales lo pones inactivo. Si alguien entra una seguna vez como estará activo no le deja.

Luego te puedes currar lo del time out y volver a poner el usuario inactivo cuando pase un tiempo sin actividad.
__________________
Si te gusto mi respuesta anímame a continuar dandome un voto.
  #6 (permalink)  
Antiguo 11/01/2012, 10:22
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 15 años, 3 meses
Puntos: 105
Respuesta: Dos humanos con la misma clave!!!

Si combinas lo que te mencione con lo de la ultima sesion iniciada y lo que te menciona @azimutisima, creo que podrias tener un poco mas seguro.

Saludos
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 11/01/2012, 10:36
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 11 años, 1 mes
Puntos: 188
Respuesta: Dos humanos con la misma clave!!!

La solución más corta es mucho más sencilla que lo que mencionan los usuarios de arriba.

Cuando construyes una Sesión, PHP crea un id único para esa sesión. Al cual puedes acceder con session_id

Bien, solo debes guardar este session_id en un campo de tu base de datos y compararlo con el session_id de la sesión actual del usuario.

Si este es diferente puedes: Destruir todas las sesiones para ese usuario [no importa en cuantas maquinas hayan sido construidas], Destruyes la sesión del primer usuario o destruyes la del último.

En realidad esto último solo es lógica y nada más.
  #8 (permalink)  
Antiguo 11/01/2012, 10:43
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 15 años, 3 meses
Puntos: 105
Respuesta: Dos humanos con la misma clave!!!

Exacto, es correcto.
__________________
.: Gildus :.

Etiquetas: sesiones, usuarios
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 01:15.