Foros del Web » Programando para Internet » PHP »

como saber si un usuario se encuentra conectado en una aplicacion php

Estas en el tema de como saber si un usuario se encuentra conectado en una aplicacion php en el foro de PHP en Foros del Web. Saludos lo que pasa es que me gustaría saber que recomiendan para hacer una aplicación en php en la cual yo permito el login de ...
  #1 (permalink)  
Antiguo 28/10/2008, 22:27
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 17 años, 7 meses
Puntos: 1
Pregunta como saber si un usuario se encuentra conectado en una aplicacion php

Saludos

lo que pasa es que me gustaría saber que recomiendan para hacer una aplicación en php en la cual yo permito el login de un usuario con su clave y saber si este se encuentra en linea, es decir si se encuentra utilizando la aplicación, que recomiendan??

gracias por responder
  #2 (permalink)  
Antiguo 28/10/2008, 22:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

lo puedes hacer de varias maneras, la mas común es con cookies, sesiones, y a veces base de datos, etc... tal ves, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/10/2008, 22:36
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Cita:
Iniciado por pateketrueke Ver Mensaje
lo puedes hacer de varias maneras, la mas común es con cookies, sesiones, y a veces base de datos, etc... tal ves, suerte!

como podría ser con sesiones??? te refieres a variables de sesión??


en cuanto a lo que es bases de datos el problema que se me presentaría seria saber si el usuario ya se desconecto de la aplicación como podría validar esto en la base de datos?

gracias por responder
  #4 (permalink)  
Antiguo 28/10/2008, 22:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

precisamente si, una sesión.... usa variables de sesión...

y para validar eso.... usas a veces cookies, así que después de un tiempo de inactividad se cierra la sesión... y así pasa, ya después puedes alterar lo que desees (tal ves una base de datos, etc.)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/10/2008, 02:50
 
Fecha de Ingreso: abril-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Yo lo hago así:

Código PHP:
$fichero "usuarios.txt";
$logout900;
$IP $_SERVER['REMOTE_ADDR'];
$cont 0;
$res '';
$fp fopen($fichero"r");
$t time();
if (
filesize($fichero) > 0$content fread($fpfilesize($fichero));
fclose($fp);
$lineas split(" "$content);
for(
$i 0$i count($lineas); $i++) {
    
$datos split(':'$lineas[$i]);
    
$n $t $logout;
    if (
$datos[0] != $IP && $datos[1] > ($n)) {
        
$res .= "$datos[0]:$datos[1] ";
        
$cont++;
    }
}
$res .= "$IP:$t ";
$cont++;
$fp fopen($fichero"w");
fwrite ($fp$res);
fclose($fp);
echo 
"Usuarios conectados: $cont"
Tienes que tener creado el fichero "usuarios.txt" y con permisos de escritura.

Desventaja: Como cuenta por IP, si tienes varios usuarios conectados mediante un proxy te los cuenta como uno sólo.

Suerte
  #6 (permalink)  
Antiguo 29/10/2008, 08:13
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Cita:
Iniciado por aeloco Ver Mensaje
Yo lo hago así:

Código PHP:
$fichero "usuarios.txt";
$logout900;
$IP $_SERVER['REMOTE_ADDR'];
$cont 0;
$res '';
$fp fopen($fichero"r");
$t time();
if (
filesize($fichero) > 0$content fread($fpfilesize($fichero));
fclose($fp);
$lineas split(" "$content);
for(
$i 0$i count($lineas); $i++) {
    
$datos split(':'$lineas[$i]);
    
$n $t $logout;
    if (
$datos[0] != $IP && $datos[1] > ($n)) {
        
$res .= "$datos[0]:$datos[1] ";
        
$cont++;
    }
}
$res .= "$IP:$t ";
$cont++;
$fp fopen($fichero"w");
fwrite ($fp$res);
fclose($fp);
echo 
"Usuarios conectados: $cont"
Tienes que tener creado el fichero "usuarios.txt" y con permisos de escritura.

Desventaja: Como cuenta por IP, si tienes varios usuarios conectados mediante un proxy te los cuenta como uno sólo.

Suerte
pues afortunadamente mi aplicación cuenta con su base de datos en postgres y en realidad cada usuario tiene su nombre de usuario y clave, la cuestión es que no se como hacer para saber quien se encuentra conectado, yo había pensado en un campo booleano que valide si un usuario se encuentra conectado o no y que sea true cuando este se loguea, pero el problema es cuando ya no esta logueado, o cuando simplemente cierra la ventana del navegador


gracias por responder
  #7 (permalink)  
Antiguo 29/10/2008, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Hola wpersei,

Para eso debes de definir cierto tiempo de inactividad, y luego tener algún script que se ejecute cada 10 minutos por ejemplo y verifique si un usuario lleva más de 30 minutos inactivo que resetee ese "flag" a desconectado.

Saludos.
  #8 (permalink)  
Antiguo 29/10/2008, 09:18
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Cita:
Iniciado por GatorV Ver Mensaje
Hola wpersei,

Para eso debes de definir cierto tiempo de inactividad, y luego tener algún script que se ejecute cada 10 minutos por ejemplo y verifique si un usuario lleva más de 30 minutos inactivo que resetee ese "flag" a desconectado.

Saludos.


gracias por responder
en cuanto a lo del script te refieres a un script en servidor?? o a que te refieres?
no entiendo como seria lo del flag?

no sirve el campo de la base de datos?

la idea del script corriendo en el servidor esta bien pero me gustaria saber como lo haen algunas aplicaciones que manejan ese tipo de sessiones, como por ejemplo facebook que tiene su chat o gmail que muestra otras sessiones abiertas

gracias

y mucha suerte
  #9 (permalink)  
Antiguo 29/10/2008, 09:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Hola wpersei,

Por flag me refiero a un campo en la base de datos que indique si esta online/offline, por ejemplo un 1 o un 0.

Luego el script es en el servidor y es un programa en PHP que barre toda la tabla de usuarios y verfica que el tiempo de inactividad sea mayor o igual al tiempo definido por ti (ej 30 minutos). Y esos registros que encuentre los pasas a "offline" (cambias el campo a 0).

Todo esto se puede hacer facil con una sola consulta SQL y el script se puede estar ejecutando continuamente en el servidor cada 10 minutos usando un Cron Tab.

Saludos.
  #10 (permalink)  
Antiguo 29/10/2008, 09:45
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Cita:
Iniciado por GatorV Ver Mensaje
Hola wpersei,

Por flag me refiero a un campo en la base de datos que indique si esta online/offline, por ejemplo un 1 o un 0.

Luego el script es en el servidor y es un programa en PHP que barre toda la tabla de usuarios y verfica que el tiempo de inactividad sea mayor o igual al tiempo definido por ti (ej 30 minutos). Y esos registros que encuentre los pasas a "offline" (cambias el campo a 0).

Todo esto se puede hacer facil con una sola consulta SQL y el script se puede estar ejecutando continuamente en el servidor cada 10 minutos usando un Cron Tab.

Saludos.
gracias GatorV eso es justo lo que habia pensado despues que me diste la idea del script

ahora mi problema es la falta de conocimientos en administracion de servidores linux, para lo cual voy a leer un poco asi lograre hacer ese cron o tarea programada que llaman

saludos
  #11 (permalink)  
Antiguo 29/10/2008, 10:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como saber si un usuario se encuentra conectado en una aplicacion php

Tu hosting debe de darte una herramienta sencilla para levantar las tareas cron, si no lee el man page de cron, no es dificil.

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 02:40.