Foros del Web » Programando para Internet » PHP »

PHP OO Tiempo de sesiones

Estas en el tema de Tiempo de sesiones en el foro de PHP en Foros del Web. Hola, muy buenas. Estoy haciendo un proyecto personal a modo de adquirir conocimientos sobre PHP en los que estoy haciendo sistemas de muchas cosas, registros, ...
  #1 (permalink)  
Antiguo 08/04/2016, 15:13
 
Fecha de Ingreso: abril-2016
Mensajes: 9
Antigüedad: 8 años
Puntos: 0
Tiempo de sesiones

Hola, muy buenas.

Estoy haciendo un proyecto personal a modo de adquirir conocimientos sobre PHP en los que estoy haciendo sistemas de muchas cosas, registros, login, noticias, amigos, etc, etc...

Y llegado a este punto en el que entro con las sesiones y es que en el sitio muestro que usuarios están conectados, pero no sé(o no me queda claro), el caso es que estuve indagando muchísimo por internet y ya como último recurso acudo a foros a pedir consejos/ayuda, a quienes sabéis bien de esto. Explicaré un poco el problema y un poco de planteamiento.

Tengo una columna en mi tabla "usuarios", llamado "online" con valor 0 = off, 1 = on, donde guardo si el usuario está conectado o no. Al iniciar sesión se actualiza a 1 y si se desconecta MANUALMENTE, se actualiza en 0. El caso es que prácticamente todos los usuarios no cierran sesión, directamente cierran pestaña o navegador, así produciendo en la web que siempre aparezcan en el cuadro de usuarios conectados, todos ellos conectados aunque no hayan tocado la web en semanas. El caso es que formulé un pequeño script el cual hace que cada hora de inactividad por parte del usuario se destruya su sesión. El caso es que si el usuario no toca más la web, no se le actualiza el estado dado que se requiere que actualice la web para que su estado se ponga en 0, y por lo cual, sigue apareciendo siempre como conectado, aunque el cuando vuelva a entrar se deba conectar nuevamente.

El caso es, qué me aconsejáis hacer para que el cuadro de "usuarios conectados", se actualice, aunque dicho usuario no actualizara la página, para que terminara de desconectarlo y así actualizarlo en 0. Porque aunque la sesion se destruya, el debe actualizar la página para que se aplique lo cambios.

No sé si me he explicado mal o qué, pero si me podéis echar una mano, os lo agradecería muchísimo

Un saludo!
  #2 (permalink)  
Antiguo 08/04/2016, 15:59
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Tiempo de sesiones

Pues deberia ser el proceso ejecutado desde el index o principal de la pagina, para que independientemente que usuario entre actualice los estados de los demas... que asi como verifica cuales son los online y mostrarlos conectados, tenga un proceso paralelo que compruebe tiempos y cierre sesiones a los otros que tengan intervalo de tiempo inactivo aunque ellos no sean directamente los que generen su propia actualización de permanencia online.
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 09/04/2016, 05:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Tiempo de sesiones

Hola CarlosCR,

Con el mismo script que usas para cerrar la sesión, puedes actualizar tu tabla y cambiar el campo online=0.

No sé si parezca demasiado simple, pero con la explicación que aportas, es lo que yo haría.

Espero que te sirva...
  #4 (permalink)  
Antiguo 09/04/2016, 05:33
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Tiempo de sesiones

Pues lo mejor pienso yo que sería hacelo a través de un Cron Job que se ejecute automática cada X tiempo y compruebe los registros que están online y llevan X tiempo inactivos. Podrías añadir un campo más a esa tabla con la fecha y hora de la última actividad para por hacer la validación.
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 09/04/2016, 05:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 18
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Tiempo de sesiones

Un AJAX con un temporizador que llame a un archivo php que pregunte a la BD que usuarios tienen el campo "online" en true y que te devuelva un JSON con los usuarios conectados y lo imprimes con JS en HTML.

Esto haría que desde la parte cliente , preguntase a tu BD cada cierto tiempo que usuarios estan online y los pintas ... sin necesidad de tener que actualizar la pagina el cliente.

Un saludo

Última edición por pwron; 09/04/2016 a las 05:42

Etiquetas: registro, sesiones, tabla, tiempo, usuarios
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 19:58.