Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [PHP/XML] Aiuto script contatore utenti connessi

    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?

  2. #2
    Per quale motivo tra tutti i metodi di archiviazione possivile hai scelto proprio l'XML?

    Un database MySQL o SQLite non andavano bene?

  3. #3
    Su Altervista, dove ho il mio sito, non ho i priveleggi adatti per un database mysql, cmq o pensato anche di usare xml perche: lo sto usando solo da quest'anno e perche ho pochi dati da archiviare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.