Salve,
Sto creando un contatore, utilizzando un'archivio xml, che conta gli utenti connessi memorizando l'ip di connessione e il timestamp dell'utente, fino a ora ho scritto questo codice:
Codice PHP:
$filename = "online.xml";
$IP = $_SERVER['REMOTE_ADDR'];
$time = time();
$limit = time() - 120;
// Lettura archivio xml
$dom = new DOMdocument();
$dom->load($filename);
$root = $dom->documentElement;
$elements = $root->getElementsByTagName('user');
$trovato = 0;
foreach ($elements as $ln)
{
// Estrazione nodo tag <address>
$value_address = $ln->getElementsByTagName('address');
$value_address = $value_address->item(0)->nodeValue;
// Estrazione nodo tag <timestamp>
$value_timestamp = $ln->getElementsByTagName('timestamp');
$value_timestamp = $value_timestamp->item(0)->nodeValue;
if ($IP == $value_address && $value_timestamp != $limit)
$trovato = 1;
}
$doc = new DOMdocument();
$doc->load($filename);
$doc->formatOutput = true;
$root = $doc->documentElement;
if ($trovato == 0) {
// Creazione tag <user>
$user = $doc->createElement('user');
$user = $root->appendChild($user);
// Creazione tag <address>
$address = $doc->createElement('address');
$address = $user->appendChild($address);
// Creazione tag <timestamp>
$timestamp = $doc->createElement('timestamp');
$timestamp = $user->appendChild($timestamp);
// Inizializzazione nodo tag <address>
$address_txt = $doc->createTextNode($IP);
$address_txt = $address->appendChild($address_txt);
// Inizializzazione nodo tag <timestamp>
$timestamp_txt = $doc->createTextNode($time);
$timestamp_txt = $timestamp->appendChild($timestamp_txt);
$doc->save($filename);
}
Nel codice ho inserito una if che mi permette di inserire un nuovo record solo se l'ip non è gia presente nel file xml.
Cmq il problema è come far si che il timestamp si aggiorni durante la navigazione dell'utente e come far eliminare il record quando l'utente non è presente sul mio sito?