Foros del Web » Programando para Internet » PHP »

Validar que no se logueen más de una vez el usuario

Estas en el tema de Validar que no se logueen más de una vez el usuario en el foro de PHP en Foros del Web. Hola, necesitaria que me orienten en un tema: Debo controlar que el usuario que ingresó al sistema, no pueda loguearse nuevamente mientras su sesion este ...
  #1 (permalink)  
Antiguo 02/05/2005, 15:21
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Validar que no se logueen más de una vez el usuario

Hola, necesitaria que me orienten en un tema:

Debo controlar que el usuario que ingresó al sistema, no pueda loguearse nuevamente mientras su sesion este activa, es para evitar que dos usuarios distintos utilicen el mismo perfil.

Desde, muchas gracias.
  #2 (permalink)  
Antiguo 02/05/2005, 15:32
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 13 años, 2 meses
Puntos: 0
podes poner en la base de datos que usas para loguear un campo "loqueado" que este en true cuando esta logueado y false cuando no, de esta forma al loguerlo podes ponerlo en true y al desloguearlo en false y decirle que no se puede loguar si ya esta logueado en algun lado, que ya esta logueado en otra pc o en otra ventan o lo que sea.

espero que te sirva,

Saludos,

Liber
__________________
Liber
  #3 (permalink)  
Antiguo 02/05/2005, 15:40
 
Fecha de Ingreso: noviembre-2003
Mensajes: 34
Antigüedad: 14 años
Puntos: 0
bueno yo recomendaria el uso de sesiones, y q supongamos ql el usuario cierra el navegador sin haberse deslogueado a la otra q quiera loguearse no va a poder xq en la tabla sigue estando true =P


lo esencial seria sesiones

session_start();
if($logueado==true)
{
//significa q ya esta logueado
}else
{
session_register("nombre","usuarios","logueado");
$logueado=true; //indicas q ya esta logueado
}

---

y en acda pagina php tendiras q poneer session_start();

espeo q te sirva y estar en lo correcto =P
  #4 (permalink)  
Antiguo 02/05/2005, 15:45
 
Fecha de Ingreso: septiembre-2004
Ubicación: Montevideo
Mensajes: 346
Antigüedad: 13 años, 2 meses
Puntos: 0
no me percate.... yo dejo que se loguee las veces que quiera en donde sea... por lo que nunca lo pense de esa manera.... siempre se aprende!
__________________
Liber
  #5 (permalink)  
Antiguo 03/05/2005, 05:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por xbust3r
bueno yo recomendaria el uso de sesiones, y q supongamos ql el usuario cierra el navegador sin haberse deslogueado a la otra q quiera loguearse no va a poder xq en la tabla sigue estando true =P
Para eso se le puede dar un "tiempo de actividad"... lo que se hace para mostrar los "usuarios conectados"... y no hay mayor problema... mientras esté navegando dicho campo se mantendrá "true", pero si cierro el navegador y no me deslogueé... y si pasa un "tiempo de inactividad" definido por mí será cosa de cambiar dicho campo a "false" y no habrá problema...

Respecto a lo que planteas... :-s primero decir que tu código es obsoleto... ya no hay que hacer uso de session_register() y las variables de sesión habrá que recogerlas con $_SESSION['variable'].
http://www.forosdelweb.com/showthrea...989#post238989
http://www.forosdelweb.com/showthrea...998#post238998

Ahora bien... temo que dicha forma no será funcional... ve que dicho script solo se ejecutaria de "forma local", pero tengo entendido la pregunta iba dirigida a impedir un doble logueo "gobal"... esto es, supongamos que yo en mi PC me logueo con mi nombre de usuario.. todo bien, tu script me identificaria que estoy logueado... pero ahora tú, al mismo tiempo que yo, igual te loguas con MIS DATOS... en tu script al ejecutarse no estará definida la variable de sesión.. ¿qué impide que estemos los dos logueados al mismo tiempo con los mismos datos???... nada... hay que hacer uso de un dato guardado en el servidor y que sea único... buena opción es un campo de una Base de Datos como lo sugirieron...

Propongo otra cosa: Hace tiempo hice un sistema para mostrar los usuarios activos entre otras cosas: http://www.forosdelweb.com/f18/saber-cuando-son-usuarios-visitantes-282742/ si no mal recuerdo hice uso de una tabla donde guardaba los datos de los usuarios conectados temporalente... la adaptación sería sencilla, tendría que agregarse una condición más: Si proviene del formulario de logueo, osease si se intentó loguarse... pero esta en la tabla que creé, donde guardo a los usuarios conectados... osease que ya estaba logueado... entonces impedir el acceso... sencillísimo , espero haberme explicado.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 03/05/2005, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
xbust3r

El uso de sesiones para este caso particular no te va a servir .. recuerda que una sesión es "única" para el cliente que las crea . por ende .. otros "intentos" de hacer un "login" nuevo bajo esa cuenta (usuario/contraseña) no podrán "leer" las "sesiones" de otros usuarios ya han creado .. Es por eso por lo que se necesita un lugar "centralizado", lease; Base de datos, archivo de texto plano .. etc, se pueda ir leyendo información acerca del estado de esa "cuenta" como por ejemplo usando un flag que indique que está el usuario en el sistema .. o mejor todavía basandose en tiempos de inactividad y el registro de la hora/fecha del sistema ante cada iteracción con el sistema (mover páginas, pasar de un script a otro .. redireccionando ..ejecutando links .. etc), jutamente para informar al "servidor" de algo tipo "Hey .. sigo aquí!" .. y si tu consideras por ejemplo "si en tanto tiempo no se ha reportado el usuario tal .. consideraré que ya no está usando el sistema .. " así podrás "liberar" esa cuenta para permitir otro nuevo login y de hecho "sacar" al usuario que estuvo ese tiempo o mayor sin actividad alguna en el sistema ...

Un saludo,
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 23:44.