PHP, MY SQL y SESIONES

Estimado experto,
Quiero desarrollar una aplicación en la cual se identifica al usuario desde una tabla simplemente con un código. Voy ha usar PHP y MySQL, (estoy en mis primeros pasos), bien ahora supongamos que tenemos superado el problema del acceso y la validación, con lo que le permito a ese usuario acceder a una zona segura de mi web, pero ahí me vino la duda que pasa si este usuario comparte su código de acceso entonces tendira dos usuarios viendo la página y como comprenderás eso no me conviene, ¿eso lo puedo controlar con sesiones? Básicamente esa es mi pregunta.
¿Es decir el usuario A ha sido validado creo una sesión y si usa en otra maquina la misma clave podre envitar que acceda porque el sistema le dirá que ese usuario ya esta en otra sesión?, ¿Puedo hacer eso?
Mil gracias por tu respuesta.

1 Respuesta

Respuesta
1
Si bien las sessiones son una herramienta muy útil en PHP, no te permitirán hacer automáticamente eso que necesitas. El sistema de Control para que dos usuarios no utilicen la misma cuenta, corre por parte del programador.
Una sugerencia que te daría es la siguiente:
En el registro de cada usuario, incluye dos campos más, uno que indique si el usuario está logueado actualmente (sería un ENUM o un CHAR) y otro campo que indique la fecha de ultimo acceso de ese usuario al sitio (puedes utilizar un TIMESTAMP).
Entonces, cuando un usuario se logea al sistema, cambias el estado del registro de logeo de 0 a 1, por ejemplo. De esa manera, ya sabes que tu usuario está logueado. Luego, actualizas el campo de ultimo acceso a la fecha y hora actuales.
En las sucesivas páginas que el usuario visite, actualizas solo este ultimo campo y al deslogearse el usuario, cambias el estado del campo de 1 a 0 nuevamente.
Ahora, si en el medio, un usuario intenta logearse desde otra máquina, al ver el sistema que el campo está en 1, no lo dejará logearse hasta que esté en 0 nuevamente.
La única desventaja del sistema, es que consume un poco más de recursos, al hacer un UPDATE del registro del usuario cada vez que visita una página.
Otro problema que le veo es que pasa cuando un usuario no se deslogea, ¿sino qué cierra el navegador y apaga la computadora? Bueno, en ese entonces, deberías definir un tiempo que consideres justo, y recorrer la tabla y poner en cero a todos los usuarios que no han tenido actividad en, digamos, 30 minutos.
Bueno, espero que con esto te puedas dar una idea, y cualquier duda, consúltame.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas