Foros del Web » Programando para Internet » PHP »

Ayuda con Login de Usuarios único

Estas en el tema de Ayuda con Login de Usuarios único en el foro de PHP en Foros del Web. Hola, nuevamente con dudas. Necesito desarrollar un sistema de login de usuarios pero que sea único, es decir, que un usuario pueda estar logueado 1 ...
  #1 (permalink)  
Antiguo 13/03/2010, 10:19
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Ayuda con Login de Usuarios único

Hola, nuevamente con dudas.

Necesito desarrollar un sistema de login de usuarios pero que sea único, es decir, que un usuario pueda estar logueado 1 sola vez.

Ya que generalmente con los mismos datos una persona se puede loguear en un mismo sistema desde diferentes o pcs o incluso desde diferentes navegadores dentro de la misma PC, ¿se entiende el problema?

Entiendo que debera ser desarrollado usando una base de datos utilizando una "bandera" que me indique si el user esta logueado (esa bandera se activaria cuando se hace el login y se desactivaria cuando se desloguee). En caso de estar activa se mostraria un mensaje indicando que ya hay una persona logueada con esa cuenta.

Creo que el mayor inconveniente viene cuando un usuario no finaliza su sesion desde el link correspondiente sino que por ejemplo cierra el navegador. ¿cómo controlo eso?

Espero se haya entendido el inconveniente y me puedan orientar un poco mas, gracias!
__________________
CÉSAR MANSILLA
Web & Mobile Developer - Analista - Creativo - Curioso
http://cesarmansilla.com/
http://cesarmansilla.com/blog/
  #2 (permalink)  
Antiguo 13/03/2010, 10:31
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Ayuda con Login de Usuarios único

Bueno lo unico que debes hacer es lo siguiente

USUARIO ( idusuario, nombre, apellido, email, clave )
LOGIN (idlogin, idusuario)


lo unico que debes verificar es que en la tabla login no exista el ID del usuario en cuestion que se este logeando. Pseudocodigo

INICIO

var email
var clave

Consulta SQL1 = 'SELECT idusuario FROM usuario WHERE email = email AND clave = clave';

Consulta SQL2 = 'SELECT count(idlogin) FROM login WHERE idusuario = consulta SQL1(idusuario) ';

SI (Consulta SQL2 == 0)

LOGEAR USUARIO

SINO

IMPRIMIR ( USUARIO LOGEADO )


FIN
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #3 (permalink)  
Antiguo 13/03/2010, 10:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con Login de Usuarios único

Podrias crear una columna que diga conectado y otra de la última vez que se conectó. Luego por medio de ajax, mientras esté conectado a tu página, verificas que esté conectado la persona y aumentas el valor del tiempo que estuvó conectado, cada cierto tiempo. Si la persona cierra o se desconecta eliminas el valor de donde estuvo conectado con algún cron job, que verifique todas las persona que estuvieron más de 15 minutos (o el tiempo que desees verificar) desconectadas o también usas la función de javascript onunload para detectar cuando la persona se vaya de la aplicación cerrando la página.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 13/03/2010, 10:43
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Ayuda con Login de Usuarios único

Cita:
Iniciado por abimaelrc Ver Mensaje
Podrias crear una columna que diga conectado y otra de la última vez que se conecto. Luego por medio de ajax, mientras esté conectado a tu página, verificas que esté conectado la persona y aumentas el valor del tiempo que estuve conectado cada cierto tiempo. Si la persona cierra o se desconecta eliminas el valor de donde estuvo conectado con algún cron job que verifique todas las persona que estuvieron más de 15 minutos desconectadas o también usas la función de javascript onunload para detectar cuando la persona se vaya de la aplicación cerrando la página.
El "sistemita" para saber si esta logueado ya lo hice, con un campo llamado "logueado" que es un "bool" si esta activo muestro que esta logueado y sino lo ingreso al sistema y modifico el flag.

Me faltó la otra parte que mencionas (y no se me habia ocurrido) de almacenar la ultima vez que se conecto. Ya con ese campo y un cronjob lo solucionaria.

Muchas gracias!
__________________
CÉSAR MANSILLA
Web & Mobile Developer - Analista - Creativo - Curioso
http://cesarmansilla.com/
http://cesarmansilla.com/blog/

Etiquetas: login, 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




La zona horaria es GMT -6. Ahora son las 16:24.