jixo.altervista.org

Help Free Software, help this site

Make a donation

Appunti vari di HTML libero

Contatore accessi in PHP

Il codice di base che ho trovato per un semplice conteggio degli accessi e' il seguente:

Ha il grande vantaggio di non usare nessun DataBase esterno (tipo MySql) per cui può essere usato anche su Hosting Server che non offrono queste funzioni alle utenze base.

Nella prima parte del codice si aggiorna il valore di conteggio degli accessi nel file contatore.txt

Successivamente si apre il file degli accessi vero e proprio accessi.txt ed iniziamo a scrivere diverse informazioni come Ip Address, pagina di provenienza, data e ora di visita, pagina attuale che e' stata visitata. Questo perche' un visitatore puo' entrare nel nostro sito in una pagina qualsiasi, magari quella che giorni prima gli era interessata maggiormente. Il tutto e' condizionato dalla presenza dell'IpAddress dopo che e' stata aperta una sessione.

Questo codice genera un file di testo piu' o meno cosi':(Naturalmente ho offuscato gli indirizzi di rete per la protezione della privacy)

Effettivamente non e' particolarmente bello... Comunque e' gia' una buona base di partenza per ottenere risultati con le bandiere delle nazioni come quelle sotto.

Bandiere delle nazioni

Cio' e' possibile in quanto attraverso l'Ip Address si riesce a risalire al luogo di residenza del visitatore. Bhe'...almeno con buona approssimazione.

Comunque non mi interessa sapere che il visitatore e' il mio vicino di casa, sono solo curioso di sapere da quale parte del mondo arriva, vorrei sapere quanti visitatori di un dato paese hanno letto le mie pagine e quali pagine, ecc.

Uno degli strumenti che ci serve per risolvere queste curiosita' e' una funzione in PHP che, attraverso il numero di Ip Address, ci indichi la nazione di provenienza. Per questo ci viene in aiuto la libreria FREE GeoIPCountryWhois che vi dovete procurare così:

  • Estarre il file contenuto nel file ZIP. Otterrete così il file GeoIPCountryWhois.csv
  • Comprimere il file ottenuto in formato Gz con il programma 7-ZIP per ottenere il file GeoIPCountryWhois.gz da copiare nella directory di lavoro.

Questo e'  database di corrispondenza IP=nazione. Per usare questo database vi occorre la funzione di ricerca geoip.php di Marius Zadara scaricabile da qui geoip.php (ATTENZIONE : credo che questa funzione lavori solo con PHP 5).  inoltre avrete bisogno delle immagini delle bandierine NON free come quelle che ho usato io e che potete scaricare da qui http://www.icondrawer.com. L'utilizzo delle immagini delle bandiere e' Free solo se e' specificato il link al loro sito.

Spero che abbiate scaricato tutto tranquillamente, che abbiate configurato i vostri file, che il vostro server vi faccia eseguire file di PHP e che abbiate trasferito tutte le immagini delle bandiere in una vostra directory sul server. A proposito, dovevate scaricare solo le immagini della sottodirectory flags/flags_iso/xx dove xx e' 16, 24, 32 o 48 a secondo di quanto volete grandi le vostre bandierine.

Se ad esempio avete creato la directory Flags sotto la directory principale vi dovreste ritrovare le bandiere in notazione /Flags/it.png per l'Italia, /Flags/us.png per gli Stati Uniti e cosi' via.,

Di questa immagine a lato invece che ne pensate? Ho cercato di emulare quella Gif che c'e' nella home page e che viene aggiornata da uno dei tanti servizi esterni esistenti di conteggio accessi.

Adesso abbiamo bisogno di uno script in PHP che ci permetta di leggere il nostro file di log accessi.txt precedetemente creato in cui sono presenti le informazioni di navigazione dei visitatori.  Occorre quindi:

  • Aprire il file
  • Leggere tutte le righe
  • Per ogni riga letta cercare la nazione di provenienza, stampare la tabella e la bandiera e le altre informazioni
  • Aggiornare i contatori

Si puo' così ottenere un risultato come questo che rappresenta in modo molto piu' leggibile la porzione di file di log vista in precedenza.

Scarica il codice da qui. Ricoratevi che il file deve aprire anche il file geoip.php, il file GeoIpCountryWhois.gz e le immagini delle bandiere. La cosa migliore e' avere tutti i file nella medesima directory , all'interno della quale esiste anche la directory Flags.

E' una semplice  base di partenza, sopratutto per i siti che non hanno un eccessivo numero di visite. Per questi sarebbe forse meglio utilizzare il mySQL. Però possiamo già avere diverse informazioni sulle quali effettuare le nostre statistiche. Ad esempio si puo' aggiungere l'informazione del browser utilizzato, del sistema operativo. Fare delle tabelle di utilizzo dei browser, di accesso alle singole pagine ecc.