Obbligare un navigatore a passare da una pagina iniziale e memorizzare le statistiche:
Non ripeteremo quello già scritto nell'articolo
"
obbligo di passaggio"
, se non lo avete fatto vi consigliamo di leggerlo perché correlato.
In pratica con questo semplice script obblighiamo l'utente a passare da una pagina iniziale e memoriziamo i dati che genera la sua
connessione, ossia:
1) Data e ora di connessione.
2) Codice IP del navigatore.
3) Pagina di provenienza (Quella che ha visitato prima di quella in oggetto).
L'operazione di scrittura dati è effettuata nel foglio di prova numero 1 (nell'esempio è quello dove si chiede di
cliccare su "
ENTRARE"), mentre sul foglio di prova numero due è visualizzato il file di testo generato con i
dati dei navigatori.
In pratica abbiamo unito i due script descritti in due articoli di questo sito:
-
obbligo di passaggio
-
controllo sito
Spiegazione codice:
Il codice in oggetto deve essere inserito nella prima riga di ogni programma, possibilmente salvando lo script
in un foglio esterno ed inserendolo con il costrutto
"include".
In questo modo in caso di variazioni dovremo modificare una sola pagina.
Da adesso, permessi di scrittura ed indirizzo file corretto permettendo avremo lo script funzionante.
Codice pagina da includere:
<?
session_start();
if (!isset($_SESSION['ip'])) {//chiedo se esiste una variabile chiamata IP, se non esiste proseguo nello script e reindirizzo il navigatore
$refe=$_SERVER['HTTP_REFERER'];//estraggo la pagina di provenienza
$ip=$_SERVER['REMOTE_ADDR'];//estraggo il codice IP
$_SESSION['ip']=$ip;//creo la variabile di sessione chiamata IP, il prossimo ciclo if non girerà
$time=time();//estraggo il timestamp del collegamento
$date=date('d-m-y H:i:s',$time);//risalgo alla data e l'ora del collegamento
$var=@fopen("/home/httpd/vhosts/tuosito.it/...../nomefile.txt","a+");//apro il file di testo dove memorizzo i dati
@fwrite($var, "Data e ora: ".$date."Numero ip: ".$ip." provenienza:".$refe."n");//scrivo i nuovi dati sul file di testo
@fclose($var);//chiudo il file di testo
$vari=file("/home/httpd/vhosts/tuosito.it/...../nomefile.txt");//estraggo un array dal file di testo, ogni riga è un elemento
$i=count($vari);//conto le righe dell'array, perché uguali al numero di visite ricevute
header("location: http://www.allwebfree.it/articolo_php_prova_1.php"); //reindirizzo l'utente alla prima pagina, da adesso non sarà più reindirizzato
}
?>
Da edesso avrete un file di testo dove potrete leggere chi è arrivato alla pagina del Vs. sito.
IMPORTANTE:
Lo script in oggetto
non memorizza se un navigatore è entrato, ma solo chi è arrivato alla pagina di controllo,
perchè la scrittura sul file di testo avviene prima del reindirizzamento. In pratica non possiamo
sapere se effettivamente l'utente accede all'area.
Per ottenere uno script che controlli anche il numero di accessi dovete inserire uno script dopo il redirect.