Sostanzialmente il codice ? questo:
Codice:
//directory dove sono conservati i dati
define("dirdati", "./dat/");
//nome completo della pagina chiamante
$pagina = $PHP_SELF;
//toglie dal nome l'estensione
$nomefile = dirdati.substr($pagina, 1, strpos($pagina, ".")-1);
//legge il contatore della pagina
$file = fopen ($nomefile.".dat", "a+");
$num = fread ($file, filesize($nomefile.".dat"));
fclose ($file);
//legge l'ultimo numero IP che ha visitato la pagina
$file = fopen ($nomefile.".ipn", "a+");
$ip_vecchio = fread ($file, filesize($nomefile.".ipn"));
$IP = $_SERVER['REMOTE_ADDR'];
fclose ($file);
// se l'ultimo numero IP e' diverso incrementa...
if (!($ip_vecchio == $IP))
{
// cancella il vecchio file visite e lo ricrea
unlink ($nomefile.".dat");
$file = fopen ($nomefile.".dat", "a+");
// incrementa il contatore visite e lo scrive
$num++;
fwrite ($file, $num);
fclose ($file);
// sostituisce l'ultimo IP con quello attuale
unlink ($nomefile.".ipn");
$file = fopen ($nomefile.".ipn", "a+");
fwrite ($file, $IP);
fclose ($file);
}
//in ogni caso stampa il numero di visite totali
echo $num;
(ho aggiunto qualche commento per rendere pi? chiaro il tutto) da richiamare in ogni pagina con qualcosa tipo questo:
Codice:
<?php
include 'include/counter.php';
?>
il tutto supponendo che:
- lo script php lo chiami 'counter.php'
- lo metti una subdir che si chiami 'include'
- esista un'altra subdir che si chiama 'dat' dove metti i files dati
ovviamente... :lol:
Ti verranno create tanti files (nella dir 'dat') quante sono le pagine dove inserisci il codice, in modo che possa gestirti queste statistiche come meglio credi.
Il codice ? molto semplice, come vedi, e dovrebbe essere autoesplicativo, tuttavia fammi sapere se hai necessit? di qualche chiarimento.
Occhio: a seconda del numero di visitatori le misure dei files potrebbero diventare... preoccupanti.
Buon divertimento :wink:
-K8