Estoy desarrollando la parte de administración de usuarios de un sitio web que albergará un webcast. El objetivo es impedir que se use al mismo usuario nam (dirección de correo electrónico) de forma concurrente. Es decir, no queremos que dos personas usen un inicio de sesión para ver el evento.Cómo evitar el inicio de sesión simultáneo de usuarios en el sitio PHP/MySQL?
Ya he configurado una tabla que contiene los datos de registro del usuario con regID como clave principal. Mi idea es crear una tabla de historial de inicio de sesión con nombre de usuario como clave principal, clave externa para nombre de usuario en la tabla de registro. La tabla de historial de inicio de sesión simplemente marca la fecha cuando el usuario inicia sesión en el sitio. Sin embargo, esto no cumplirá mi objetivo de evitar que más de un individuo use el mismo nombre de inicio de sesión.
En su lugar, ¿sería mejor tener un campo de estado de inicio de sesión en el historial de inicio de sesión o en la tabla de usuario que está configurada en 1 para iniciar sesión y 0 para cerrar la sesión? Necesitaría un procedimiento almacenado para actualizar el valor al iniciar sesión y al cerrar la sesión, y debería validarse cuando un usuario inicie sesión de modo que si el estado de inicio de sesión = 1, el usuario ya inició sesión y no puede iniciar sesión por segunda vez. ¿Es este un enfoque factible?
Comparta otros métodos que haya utilizado para evitar que se comparta la misma credencial de inicio de sesión entre varias personas.
Gracias, Sid
Reemplazar "cookie" con "sesión", y esto funcionará bien. Solo asegúrese de verificar el valor de la sesión con la base de datos en cada solicitud, y siempre restablecer el valor cuando el usuario inicie sesión de nuevo. Dos usuarios que intentan ver la página se registrarán continuamente. – Charles
Sí, buena llamada, publicación actualizada para leer "sesión". – MrWhite
Me gusta su enfoque. La única advertencia sería que el segundo usuario, cuando intenta utilizar un inicio de sesión que ya está en uso, recibe un mensaje que indica que la identificación del usuario ya está iniciada, o algo por el estilo. Queremos asegurarnos de que todos los que estén viendo el webcast tengan sus propias credenciales de inicio de sesión. Gracias :) – SidC