Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/07/2009, 19:03
cahlo
 
Fecha de Ingreso: julio-2009
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: saber si un determinado usuario está online mediante mysql

Hecho, y me funciona correctamente.

En la base de datos hice un campo "tiempo" de tipo int.

Este es el "actualizarTiempo.php" que se debe incluir en todas las páginas
Código PHP:
<?php
//si es usuario registrado guarda el tiempo
if (isset($_SESSION['id'])) {
    
$tiempousu time();
    
$registros=mysql_query("UPDATE usuarios SET tiempo = $tiempousu WHERE id = $_SESSION[id]"$conexion)
            or die(
"Problemas en el update:".mysql_error());
}
?>
Y esta es la función "revisarTiempo.php" que la base de datos debe hacer cada X tiempo

Código PHP:
<?php
$registros
=mysql_query("SELECT id, estado, tiempo FROM usuarios"$conexion)
            or die(
"Problemas en el select:".mysql_error());
//tiempo actual
$tiempoactual time();
//si no debe estar activo de guarda la id
while ($reg=mysql_fetch_array($registros)) {
    if (
$reg['estado'] == 1) {
        
$tiempolimite $reg['tiempo'] + 2700;
        if (
$tiempoactual $tiempolimite) {
            
$idinactivos[] = $reg['id'];
        }
    }
}
//se modifica el estado de las id
if (isset($idinactivos)) {
    for (
$i=0;$i<count($idinactivos);$i++) {
        
$registros=mysql_query("UPDATE usuarios SET estado=0 WHERE id = $idinactivos[$i] "$conexion)
                or die(
"Problemas en el update:".mysql_error());
    }
}
?>