Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] usuarios online usando SESSION?

Estas en el tema de usuarios online usando SESSION? en el foro de PHP en Foros del Web. hola gente, me siento medio raro preguntando algo que es muy concurrido, y "facil" pero no le encuentro solucion porque no se me ocurre como... ...
  #1 (permalink)  
Antiguo 21/04/2013, 16:02
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
usuarios online usando SESSION?

hola gente, me siento medio raro preguntando algo que es muy concurrido, y "facil" pero no le encuentro solucion porque no se me ocurre como...

busqué en google sobre esto pero no encontre más que algunos ejemplos complicados y que capaz no es lo que busco.

tengo un mini sistema de usuarios, y tendria que mostrar los usuarios que estan conectados...

encontre algunos tutoriales y arme algo general:

Código PHP:
 <?php
$tiempo_conexion  
200
$timestamp time();
$desconexion $timestamp-$tiempo_conexion;

$result mysql_query("INSERT INTO useronline VALUES('$timestamp', '$_SERVER[REMOTE_ADDR]')");

$result mysql_query("DELETE FROM useronline WHERE timestamp<$desconexion");

$result mysql_query("SELECT DISTINCT ip FROM useronline");
$usuarios mysql_num_rows($result);

    if(
$usuarios == 1) {
      echo 
$usuarios." usuario online";
    } else {
        echo 
$usuarios." usuarios online.";
    }
?>
pero no encuentro una manera de hacer una lista de los usuarios que estan conectados, me ayudan o guian?
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #2 (permalink)  
Antiguo 21/04/2013, 17:01
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: usuarios online usando SESSION?

ya varios me dijeron que podia usar los id de la sesion que inicia dicho usuario, pero no se me ocurre algun metodo "mas efectivo"
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #3 (permalink)  
Antiguo 24/04/2013, 22:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: usuarios online usando SESSION?

Yo...supongamos que tengo el ID numero 1
entonces si yo estoy dentro del sistema se debe actualizar el campo de la bd que diga que estoy conectado! y otro campo donde aparezca la fecha en que se actualizo el campo o sea fecha y hora!

Mientras ademas consulto a los otros usuarios menos a mi que tengan el conectado=1 dentro de la base de datos! y que la fecha y hora! sea por ejemplo mayor a 10 minutos! si es mayor a 10 minutos entonces actualizarlo a desconectado! pero si es menor a 10 minutos dejarlo como conectado!

Como veras! si lo sabes aplicar esto puede funcionar! ademas puedes hacer un pequeño codigo ajax que se ejecute cada X tiempo para hacer eso anterior que te dije! :D
  #4 (permalink)  
Antiguo 25/04/2013, 07:20
 
Fecha de Ingreso: abril-2013
Mensajes: 60
Antigüedad: 11 años
Puntos: 2
Respuesta: usuarios online usando SESSION?

primero recomiendo que tengas una tabla en tu base de datos que fundamentalmente contenga los campos de id_session,ip_user_loged, status, time_login, time_logout... tabla que debera ser actualizada al momento que el usuario ingrese al sistema y salga de el.

teniendo esta tabla alimentada, podes hacer un select de todos los users que tengan el status "activo"
y ahi tendras tu listado

salu2
  #5 (permalink)  
Antiguo 25/04/2013, 14:33
Avatar de alex_dh  
Fecha de Ingreso: septiembre-2011
Ubicación: Kreuzberg
Mensajes: 235
Antigüedad: 12 años, 7 meses
Puntos: 14
Respuesta: usuarios online usando SESSION?

Cita:
Iniciado por edward18_1 Ver Mensaje
Yo...supongamos que tengo el ID numero 1
entonces si yo estoy dentro del sistema se debe actualizar el campo de la bd que diga que estoy conectado! y otro campo donde aparezca la fecha en que se actualizo el campo o sea fecha y hora!

Mientras ademas consulto a los otros usuarios menos a mi que tengan el conectado=1 dentro de la base de datos! y que la fecha y hora! sea por ejemplo mayor a 10 minutos! si es mayor a 10 minutos entonces actualizarlo a desconectado! pero si es menor a 10 minutos dejarlo como conectado!

Como veras! si lo sabes aplicar esto puede funcionar! ademas puedes hacer un pequeño codigo ajax que se ejecute cada X tiempo para hacer eso anterior que te dije! :D
eso esta bueno, solo marco los usuarios como "online" si llevan menos de X tiempo... como deberia hacer para actualizar su campo?
__________________
Avanzado desarrollador HTML, CSS y programador PHP, MYSQL, JAVASCRIPT

=========CALLEJEROS INOCENTES=========
  #6 (permalink)  
Antiguo 27/04/2013, 09:32
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 12 años, 7 meses
Puntos: 18
Respuesta: usuarios online usando SESSION?

Bueno...puedes hacerlo de manera q se ponga conectado dependiendo si hay actividad dentro de la pagina o no!
O sea supongamos que en todas tus paginas tu haces el include de un menu o del archivo de conexion a la base de datos!
Alli podrias agregar ese codigo! o sea que primero te actualice a ti o sea a tu id como conectado y que actualice el tiempo!


Y luego de una vez! actualice a todos menos tu..ese todos menos tu, supongamos q el campo unico de la tabla es id_usuario y mi id es 1 entonces una de las condiciones de la consulta seria

WHERE id_usuario NOT IN(1)
O sea todos los usuarios menos yo que soy el id 1 y que esten conectado! luego de eso! que rescatas sus valores como la ultima vez q se actualizo el campo! alli iras haciendo el calculo, si tiene menos de 10 minutos "Ejemplo" dejar como esta! pero si tiene mas de 10 Minutos entonces actualizas su usuario para que lo coloque como desconectado!

Etiquetas: mysql, select, usando, 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 23:12.