Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/04/2011, 17:14
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ERROR de sintaxis dolor de cabeza

jeje, puras correcciones con ustedes!!

ciertamente es posible registrar los usuarios activos por medio de su propio registro en la BD, sin embargo es impreciso conocer quien ha cerrado sesión de acuerdo a si cerro el navegador, o solo cerró sesión en el sitio...

y al parecer solo es necesario conocer los usuario online, no estoy seguro si tiene relación directa con los usuarios registrados, para lo cual la técnica mostrada es realmente eficiente:

- se registra una hora de ingreso por IP
- se verifica cada tiempo, eliminando los IPs viejos
- finalmente se devuelve el total de IPs que constantemente se actualizan por "actividad"

es mas, si solo se trata de conocer los IPs (usuarios) on-line, indiferentemente de si están registrados o no, yo uso esto:
Código PHP:
/**
 * Conexiones activas
 *
 * @param  integer $time Duracion en segundos
 * @return integer
 */
function actives($time 300)
{
  
$remote $_SERVER['REMOTE_ADDR'];
  
$tmp    md5($_SERVER['REQUEST_URI']);

  if ( ! 
is_file($tmp)) touch($tmp0666);

  
$max 0;
  
$out '';
  
$cur FALSE;
  
$old file_get_contents($tmp);
  
$new sprintf(';%s,%d'$remotetime());

  foreach (
explode(';'$old) as $val)
  {
    if ( ! 
strstr($val',')) continue;

    
$test explode(','$val);
    
$addr $test[0];
    
    
$past = (int) $test[1];

    if ((
time() - $past) > $time) continue;
    elseif (
$addr === $remote)
    {
      
$cur  TRUE;
      continue;
    }

    
$out .= $val;
    
$max += 1;
  }
  if (
$cur === FALSE$out .= $new;

  
file_put_contents($tmp$out);
  return 
$max;

Edito: creo que el script anda mal, pero bueno, la idea es esa....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 08/04/2011 a las 17:23 Razón: anexé script...