Foros del Web » Programando para Internet » PHP »

Usuario en linea? - solo usuarios registrados.

Estas en el tema de Usuario en linea? - solo usuarios registrados. en el foro de PHP en Foros del Web. Como puedo conocer que usuario esta en linea, de los que se registraron en mi tabla de usuarios? Saludos....
  #1 (permalink)  
Antiguo 05/09/2006, 15:44
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Usuario en linea? - solo usuarios registrados.

Como puedo conocer que usuario esta en linea, de los que se registraron en mi tabla de usuarios?

Saludos.
  #2 (permalink)  
Antiguo 05/09/2006, 16:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. el "registro" involucra en tu sistema algún "seguimiento" del mismo? .. por sesiones o cookies que crees al hacer tu "login" tu usuario?.

Si es así .. esos "login" y verificación del usuario que sigue en línea debes llevarlo a una BBDD (o similar) para poder presentarlo y gestionar su "salida" del sistema.

Los ejemplos que en el foro podrás encontrar sobre "usuarios activos" que registran una "IP" y hacen procesos con ella .. podrían servirte para tu caso sólo sustituyendo la "IP" por el dato que tu conoces de tu usuario activo en el sistema (esa cookie o variable de sesión que identifica a tu usuario en el sistema y que está autentificado).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 23/10/2006, 14:16
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Cluster no se puede hacer una funcion usando la variable de sesion del loguin, para despues llamarla en el perfil de dicho usuario?

Mi intencion es alivianar el uso de consultas sql.
  #4 (permalink)  
Antiguo 23/10/2006, 14:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. a ver si nos aclaramos ..

* ¿Tú quieres mostrar al usuario activo en el sistema "quien es" el mismo?
ó
* ¿Quires mostrar a todos los usuarios activos en tu sistema quien son ellos (todos)?

Si quieres sólo el primer caso .. en tu variable de sesión $_SESSION['nose_cual'] ya tendrás indentificado quien es .. o puedes gerear esa variabel si no lo haces ya y obtener dicho dato cuando lo neccesites.

Deberías explicar mejor que es lo que tienes (con código + explicación detallada) y lo que realmente quieres hacer (para evitar confusiones).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 23/10/2006, 15:56
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Ok, mi idea es practicamente igual a lo que sucede en el foro, cuando el user esta online el circulo redondo aparece en verde.

Saludos.
  #6 (permalink)  
Antiguo 23/10/2006, 18:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Snake nS Ver Mensaje
Ok, mi idea es practicamente igual a lo que sucede en el foro, cuando el user esta online el circulo redondo aparece en verde.

Saludos.
Pues para eso .. el "foro" ha tenido que almacenar una lista con todos los usuarios activos .. por qué ese botón "verde" no lo vé sólo el própio usuario sino el resto también .. Es justamente ese listado el que ves en la sección "Quién Está en Línea" (con sus nicks correspondientes e incluso por donde andan en la aplicación).

Por ende .. esa "Base de datos" que hablaba la necesitas, incluida sus consultas constantes a la BBDD. Una sesión no te sirve .. la sesión (sus datos) sólo le pertenecen al usuario que que las inicia, así que el resto no ven esos datos. Por eso necesitas un lugar "común" donde colocar esa información: sea una base de datos, un archivo de texto plano .. o lo que gustes .. menos una sesión o una cookie.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 23/10/2006, 18:40
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Claro entendi, entonces lo que deberia hacer es algo como esto:

Coloco un campo en mi tabla usuarios que se llame "online", cuando el usuario se loguea ese campo pasa a tener un valor 1 (si), despues no se de que forma si no noto actividad del usuario en un x tiempo hago un update del campo a 0.

Recorro la tabla de mis usuarios, busco los que tienen ese campo en 1, los guardo en un array y despues en la lista de usuarios, mediante un bucle busco si esta o no dentro del array.

Algo asi tengo que hacer?
  #8 (permalink)  
Antiguo 23/10/2006, 19:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En lugar de almacenar un "flag" (1/0) almacena la fecha actual y la de cada iteracción de ese usuario con tu sistema (en cada script) .. así podrás hacer cálculos en función de esa fecha almacenada y la actual para determinar la "inactividad"; es decir: si ha pasado N tiempo entre su última iteracción con el sistema y la fecha/hora actual .. ahí puedes determinar que esos usuarios ya no están activos (se trata de hacer una consulta SQL para descartar esos usuarios que ya no están activos).

Insisto que los ejemplos que veras de "usuarios activos" en el foro (en las FAq's del foro de PHP y el del sub-foro de PHP orientado a objetos) tienes código para ver como funciona. Esos ejemplos se basan en IP's .. en tu caso almacenaras en lugar de sa IP tu "ID" de tus usuarios activos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 23/10/2006, 19:15
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
ok, gracias cluster.
  #10 (permalink)  
Antiguo 24/10/2006, 00:08
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
puedes usar la funcion time(); para sacar el tiempo actual, cada que el usuario pagine, se haga un UPDATE a la base de datos con el nuevo tiempo a el registro que contenga esa IP si el usuario sale, el siguiente usuario (o sea, en la misma funcion) automaticamente elimina el registro de online con
$tiempo=-time()*300 (o algo asi) y elimina a los usuarios de la BD que tengan mas tiempo inactivos (en este caso 300 segundos)
Saludos
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 01:47.