Spiegazione di un semplice script php per controllare i navigatori del sito.
ALLWEB free
Directory Web Script Linguaggi
Italiano Inglese Tutte
 
 24 Mar 2017
aggiungi in preferiti  
Home    Mappa directory    Script




Controllo Navigatori:

Una delle cose più semplici che possiamo fare con PHP è controllare il navigatore.
Non perderemo tempo in descrizioni, sarà molto più semplice analizzare lo script.
ATTENZIONE Per ottenere i risultati su un file .txt dovete attivare i permessi di scrittura sul Vs. spazio web. Se compilato lo script non riuscite ad ottenere un file con i risultati date uno sguardo a questa pagina ed a quelle correlate.

N.B. Un altro comune errore è scrivere l'indirizzo del file NON correttamente.
Probabilmente il file di testo pur avendo un indirizzo del tipo http://www.tuosito/file.txt NON è raggiungibile tramite questo indirizzo.
Per ottenere l'indirizzo esatto provate a chiedere al supporto del vostro hosting, oppure se utilizzate un programma FTP per caricare i file guardate l'indirizzo che mostra durante tali operazioni.
Un indirizzo potrebbe essere:
/home/httpd/vhosts/tuosito.it/file.txt



Codice:

<?
session_start();//Apro una sessione
if (!isset($_SESSION['ip'])) {//proseguo solo se non esiste una variabile IP nella sessione
$refe=$_SERVER['HTTP_REFERER'];//Estraggo la pagina di provenienza del navigatore
$ip=$_SERVER['REMOTE_ADDR'];//Estraggo l'IP del navigatore
$_SESSION['ip']=$ip;//Creo la variabile di sessione IP per non entrare più in questo ciclo
$time=time();//Estraggo il timestamp
$date=date('d-m-y H:i:s',$time);//Ricavo la data
$var=fopen("controllo_sito.txt","a+");//Apro il file delle statistiche
fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."n");//Salvo le statistiche
fclose($var);//Chiudo il file delle statistiche
}
?>
(Per inserire lo script nel sito Copia e Incolla.)

Basta inserire lo script prima del codice html di ogni pagina del nostro sito per sapere con certezza quanti navigatori sono passati dal sito, da dove provenivano, il loro numero IP e la data esatta del collegamento.


Variabili di sistema usate:

$_SERVER['REMOTE_ADDR']
Ricava il numero IP del navigatore.
Il tuo è 54.211.27.195.
$_SERVER['HTTP_REFERER']
Ricava la provenienza del navigatore.
Prima di entrare su questa pagina eri in .
N.B.Se l'indirizzo della pagina è inserito direttamente nella barra indirizzi non apparirà niente. La variabile ha valore solo se si entra nel sito da un link da altro sito o pagina del sito stesso.
$_SERVER['HTTP_USER_AGENT']
Ricava il tipo di browser utilizzato (nell'esempio non è inserito).
Il tuo è CCBot/2.0 (http://commoncrawl.org/faq/).


N.B.
Se le impostazioni del Vostro fornitore di spazio Web lo consentono è possibile usare direttamente le variabili
$REMOTE_ADDR
$HTTP_REFERER
$HTTP_USER_AGENT

Nel caso un navigatore utilizzi un proxi è possibile estrarre il codice IP (del server proxi) tramite la variabile
$_SERVER['HTTP_X_FORWARDED_FOR']
oppure semplicemente
$HTTP_X_FORWARDED_FOR


Versione per PHP 4.0.1 o precedenti:

Se avete letto l'articolo Php register_globals avrete capito che le sessioni come altri oggetti di PHP possono creare dei problemi per le continue evoluzioni del linguaggio o per le impostazioni del fornitore di spazio web.
Se avete dei problemi con lo script appena descritto provate ad inserire il codice sottostante.
In pratica è lo stesso script modificato, senza l'utilizzo dell'array globale di sessione.

CODICE:
<?
session_start();//Apriamo una sessione
session_register(ip);//Inseriamo una variabile chiamata IP
if ($ip==null){//Chiediamo se la variabile non esiste
$refe=$_SERVER['HTTP_REFERER'];//Chiediamo da quale sito proviene il visitatore
$ip=$_SERVER['REMOTE_ADDR'];//Prendiamo il numero IP del visitatore
$time=time();//Apriamo una variabile data
$date=date('d-m-y h:i:s',$time);//creiamo il formato data
$var=fopen("controllo_sito.txt","a+");//Apriamo/creiamo il file salvataggio dati (Verificate l'indirizzo!!!)
fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."n");//Salviamo i dati raccolti
fclose($var);
}
?>