Bueno todo bien para el primer visitante, le aparece el numerito "1" q dice que es el primer usuario online; pero acá empezamos el problema cuando el segundo usuario ingresa a la pagina, este reescribe el archivo en dnd almaceno las IP y su tiempo correspondiente a la visita; o sea que no los va almacenando uno abajo del otro.
Paso mi código.
test.php
Código PHP:
   <?php 
$dataFile = "UserOnline.dat";//Archivo donde se almacenarán las IP - TIEMPO
$dataXml = "UserOnline.xml";//Archivo donde se almacenará el contador
$sessionTime = 1;//tiempo en *minutos* para considerar a alguien en línea antes de sacarlos
 
error_reporting(E_ERROR | E_PARSE);
if(!file_exists($dataFile)){
    $fp = fopen($dataFile, "w+");
    fclose($fp);
}
 
$ip = $_SERVER['REMOTE_ADDR'];
$users = array();
$onusers = array();
 
//get users part
$fp = fopen($dataFile, "r");
$lineas = 0;//*
flock($fp, LOCK_SH);
while(!feof($fp)){
    if(fgets($fp)){//*
        $lineas++;//*
    }
    $users[] = rtrim(fgets($fp, 32));
}
flock($fp, LOCK_UN);
fclose($fp);
 
//cleanup part
$x = 0;
$alreadyIn = FALSE;
foreach($users as $key => $data){
    list( , $lastvisit) = explode("|", $data);
    if(time() - $lastvisit >= $sessionTime * 60){
        $users[$x] = "";
    }else{
        if(strpos($data, $ip) !== FALSE){
            $alreadyIn = TRUE;
            $users[$x] = "$ip|" . time(); //update record
        }
    }
    $x++;
}
 
if($alreadyIn == FALSE){
    $users[] = "$ip|" . time();
}
 
//write file
$fp = fopen($dataFile, "w+");
flock($fp, LOCK_EX);
$i = 0;
foreach($users as $single){
    if($single != ""){
        fwrite($fp, $single . "\r\n");
        $i++;
    }
}
flock($fp, LOCK_UN);
fclose($fp);
 
if($uo_keepquiet != TRUE){
    if($lineas!=$i){
        $xml=new DomDocument('1.0', 'UTF-8');     
        $usuarios=$xml->createElement('online');  
        $usuarios=$xml->appendChild($usuarios);
    
        $conectados=$xml->createElement('usuarios',$i);
        $conectados=$usuarios->appendChild($conectados); 
        $xml->formatOutput = true; 
    
        $strings_xml = $xml->saveXML(); 
        $xml->save(''.$dataXml.'');        
        echo $i;
    }else{
        echo $i;
    }    
}
?>    Alguien me podria decir en donde tengo el error???, xq en los demos de las paginas se vé que funcionan bien, pero no se xq a mi me pasa eso.
GRACIAS!!
 
  
 

 Contador de user online me reescribe archivo
 Contador de user online me reescribe archivo 

 
  
 

