Hola tengo un pequeño sistema que desarrolle en Php trabaja con una tabla usuarios para validar sesiones en php y según la sesión yo muestro los privilegios que tiene el sistema
El sistema ya funciona tiene su inicio de sesion y todo lo que me falta implementar es lo
siguiente.
Tengo una nueva Tabla que llame "control_sesion" id_control , id_usuario , conexiones , caducidad
Quiero implementar lo siguiente:
Si en la tabla "control_sesiones" el id_usuario "xx" tiene como valor 2 , solo debería iniciar session en 2 terminales , si ese valor fuera 1 solo podría conectarse en una sola estación si quisiera conectarse en otro lado debería mostrarle un mensaje , "Usted no puede conectarse porque ya existe una session activa" y no debe permitir loguearse , si el usuario logueado esta inactivo mas de 30 min su session debe cerrarse automaticamente
No quiero con sockets php porque ya lo hice el servidor cpanel de la gran mayoria de hosting no permite eso , por esa es la razon que deseo otra opcion que si corra en mi cpanel.
Puede utilizarse jquery , ajax ,
Realmente es sencillo es mas te lo dire aqui,,
id_usuario, conectado, nconecciones,status(seria si estan on of) si dura mas de 30min destruye todas las conexiones no puedes solo dejar 1,
/*serian los datos de las tablas por asi decirlo*/
query mysql select datos de las tablas;
varconectado=query;
varnconexiones=query;
if(varconectad)==(varconexiones){
text=limite de conexiones{
else{
/*dejara que se conecte y solo sumaras*/
nvarconectado=varconectado+1;
update table etc
}
que hara eso que verificara cuantas conexiones puede hacer en diferentes lugares si tiene 4 y conectado tiene 4 le dira limite si tiene digamos 3 le dejara conectar y le sumara 1+ a conectado cuando intente de nuevo ya le saldra el limite
con la session sin actividad por 30min la session destroy que puedes hacer seria de una manera diferente por ejemplo si usas que cuando se conecte registre la IP entoncs podras destuir esa session sino las destruiras todas
puedes hacer lo mismo si IP x tiene 30min destroy session y haces un update de conectado y le colocas conectado-1
asi podra conectar de nuevo y asi suscesivamente.
Te lo escribí todo porque últimamente no me salen trabajos asi que descidi decirte la solucion cualquier duda enviame.
if(conectado)==query{
if(nconecciones)==(conectado){
text= Conexiones limitadas
}else{
if(ncdisponibles)==nconeciones{
text= Conexiones limitadas
}else{
dejarlo conectar
ncdisponibles=#+1;
conectado=#+1;
}
Un saludo cordial, me interesa tu proyecto lo que entiendo de tu requerimiento es lo siguiente:
Al momento que el usuario desee loguearse en X dispositivo, se verifica el numero de sesiones abiertas, si aún puede iniciar en otro dispositivo se deja pasar, de lo contrario se anula.
Esto lo podemos lograr creando una variable temporal en la BD, es decir cada vez que el usuario inicie sesion en un dispositivo, al campo "sesion_vivo" agregamos un 1 y este valor se compara con los privilegios previos que tu le has dado, de esa forma se leerian los permisos y se cuentan las sesiones activas.
Seria un gusto trabajar para ti en este proyecto.
Buenas, somos un grupo de desarrolladores que estamos disponibles para crear e implementar su proyecto en el menor tiempo posible.
Nos gustaría poder apoyarle en desarrollar el proyecto, teniendo en consideración sus requerimientos en el momento que sean planteados.
Podríamos coordinar para mostrar los sistemas o proyectos similares a los que usted esta necesitando.
Nos gustaría saber mas a fondo los detalles de su proyecto y en que tiempo aproximado desea tenerlo quedamos a la espera de su contacto.