Comunidad de diseño web y desarrollo en internet online

Evitar que haya dos usuarios iguales a la vez

Citar            
MensajeEscrito el 28 May 2007 04:46 pm
Saludos a tod@s

Necesito que cuando un usuario haya accedido a la página con su user y password (con sesiones de php), si otra persona quiere entrar con ese mismo user y password no pueda (hasta que se haya liberado la sesión de alguna forma) ¿es posible hacer esto?

¿Y es posible evitar con el mismo nombre de usuario se acceda desde dos ip diferentes?

No encuentro como hacerlo y estoy desesperadita... una ayuda, plz :crap:

Por Pashifae

2 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 28 May 2007 07:23 pm
Lo que puedes hacer es crear una tabla donde almacenes las sesiones de usuario que han sido iniciadas, por ejemplo entra un usuario a tu sistemas con nick "pepe" y contraseña "abcde" dichos datos o sólo el nick lo guardas en la tabla de sesiones, luego cuando otro usuario desde otro equipo quiere entrar con esos mismos datos haces una consulta tanto a la tabla de usuarios para comprobar los datos luego una consulta a la tabla de sesiones para comprobar que dicha sesión no haya sido iniciada, de existir dicha sesión simplemente no le dejas entrar al sistema mostrándole un mensaje de "Sesión ya iniciada" o algo así.

Espero haberme dejado entender si tienes alguna duda la pones aquí y te echo una mano.

Saludos.

Por MijT

97 de clabLevel

1 tutorial

 

Lima - Perú

firefox
Citar            
MensajeEscrito el 28 May 2007 07:59 pm
Y como limpias la DB cuando el usuario se desconecta.- Para que se vuelva a conectar:
Yo pienso que tienes que crear seciones que lleven el nombre del usuario y la IP del mismo, ej:

Código :

session_id($usuario);
session_start();
session_register('$ip');
$_SESSION['ip']=ip;

Cuando te desconectes las sesiones se limpian automaticamente, si una session esta inactiva 12 min se elimina (no estoy seguro de los minutos).-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 28 May 2007 08:02 pm

york3rs escribió:

Y como limpias la DB cuando el usuario se desconecta.- Para que se vuelva a conectar

Yo también quedo con la misma inquietud. :?

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 May 2007 08:24 pm
Al cerrarse la sesión simplemente haces session_destroy() y un DELETE en la tabla de las sesiones y luego de ello iniciar nuevamente la sesión.

Por MijT

97 de clabLevel

1 tutorial

 

Lima - Perú

firefox
Citar            
MensajeEscrito el 28 May 2007 08:32 pm

MijT escribió:

Al cerrarse la sesión simplemente haces session_destroy() y un DELETE en la tabla de las sesiones y luego de ello iniciar nuevamente la sesión.

¿Y que pasa si no se cierra la sesión?
Simplemente el usuario se va y ya.... Quedan esos datos en la base de datos y nunca los vas a poder eliminar porque siempre queda en uso para el sistema.

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 May 2007 08:45 pm
Para ello se podría dar un tiempo límite a la sesión con algo como esto:

Código :

$pasado = time()-900; // 900 segundos. Cambiar por el plazo que se quiera dar al usuario para realizar alguna acción (recargar por ejemplo).
$sql = mysql_query("DELETE FROM sesiones WHERE tiempo < $pasado");

Por MijT

97 de clabLevel

1 tutorial

 

Lima - Perú

firefox
Citar            
MensajeEscrito el 28 May 2007 08:51 pm
Yo pienso que es muy engoroso, hay que buscar algo mas facil.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 29 May 2007 03:29 pm
y si en vez de crear una tabla de sesiones añades una variable de tipo booleana a la tabla de usuarios, cuando inicie sesion comprueba que ese valor sea falso y inicia la sesion activando el valor a cierto, cuando se desconecte a la inversa, y si simplemente cierra la ventana poner un control de tiempo o similar que desactive la variable....

Por JotaeRe

96 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 May 2007 05:09 pm
Gracias a tod@s por vuestra respueta, aunque no termino de enterarme mucho de la solución que me proponéis para cuando no se cierre sesión
:crap:

Por Pashifae

2 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 30 May 2007 05:23 pm
Creo que en javascript existe un evento OnUnLoad o algo así, que te permite detectar cuando se ha cerrado la ventana. Es lo que se me ocurre aunque no creo que se a una buena solución.

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.