[PHP] Capire motore di provenienza e chiave di accesso
Giovanni
| Argomenti: none | 4075
Quante volte può essere utile avere i dati di provenienza di un visitatore del nostro sito web?
Tantissime, sicuramente per questioni puramente statistiche ma ci sono altri casi in cui ci può aiutare sapere la provenienza e la chiave ricercata dal nostro visitatore.
Se ben gestita questa informazione ci permette, ad esempio, di indirizzare il visitatore su informazioni a lui più utili.
La funzione qui presentata é estremamente semplice da usare, é sufficiente richiamarla e torna un array associativo con impostati i seguenti valori:
- data: data e ora di adesso
- ip: indirizzo ip
- provenienza: url da cui proviene il visitatore
- sistema: browser ed altre informazioni (i bot inseriscono qui il loro identificativo)
- motore: motore di ricerca (google, msn…)
- chiave: chiave ricercata
Ecco la funzione:
function provenienza() { $ret = array(); $ret['data'] = date("Y-m-d G:i:s"); $ret['ip'] = $_SERVER["REMOTE_ADDR"]; $ret['provenienza'] = $_SERVER['HTTP_REFERER']; $ret['sistema'] = $_SERVER["HTTP_USER_AGENT"]; $indDa = parse_url($da); parse_str($indDa['query'], $parsato); $ret['motore'] = ""; $ret['chiave'] = ""; if (eregi("google.", $indDa['host'])) { $ret['chiave'] = $parsato["q"]; $ret['motore'] = 'google'; } elseif (eregi("virgilio.", $indDa['host'])) { $ret['chiave'] = $parsato["qs"]; $ret['motore'] = 'virgilio'; } elseif (eregi("msn.", $indDa['host'])) { $ret['chiave'] = $parsato["q"]; $ret['motore'] = 'msn'; } elseif (eregi("libero.", $indDa['host'])) { $ret['chiave'] = $parsato["query"]; $ret['motore'] = 'libero'; } elseif (eregi("search.yahoo.", $indDa['host'])) { $ret['chiave'] = $parsato["p"]; $ret['motore'] = 'yahoo'; } return ($ret); }
Per richiamarla é sufficiente assegnarla ad una variabile array:
$informazioni = provenienza(); // echo di esempio echo "Hai cercato " . $informazioni['chiave'] . " con il motore di ricerca " . $informazioni['motore'] . " e la tua postazione invia i seguenti dati: " . $informazioni['sistema'];
Pubblicato in Funzioni e classi PHP e C |
28 Febbraio 2008 alle 09:23
Per farlo funzionare ho fatto questo:
1) ho creato un file landing.php e vi ho messo tutte e due le parti di codice che vi sono nel tuo sito
2) in una pagina del mio sito ho messo
Quando cerco di farla funzionare, entrando nel mio sito da un motore di ricerca pero’ ottengo solo
“Hai cercato con il motore di ricerca e la tua postazione invia i seguenti dati: ”
In pratica mancano proprio le parti principali (motore , chiave usata ecc.)
Mi spieghi dove sbaglio?
Grazie anticipatamente
28 Febbraio 2008 alle 09:27
Al punto 2) manca
include(”xxxxxxx/landing.php”);
28 Febbraio 2008 alle 20:17
Prima di fare l’output occorre chiamare la funzione:
provenienza();
29 Febbraio 2008 alle 10:07
Ma quindi dove e’ che sbaglio. Oltre a quello che ho scritto nel primo post, cosa devo fare?
Cioe’ come si chiama la funzione ?
Non conosco la sintassi php e sto’ provando una marea di combinazioni ma senza risultati.
grazie in anticipo
29 Febbraio 2008 alle 18:24
Come chiamarla è descritto nell’ultima parte dell’articolo.
Chiaramente la chiave di ricerca ed il motore di ricerca li puoi vedere solo se sei arrivato alla pagina tramite un motore di ricerca, tramite google, per esempio.
3 Marzo 2008 alle 08:29
Scusa ma sono inchiodato.
Ho provato a mettere il codice per richiamarla in diversi modi
ma ottengo come output solo la parte di testo scritto.
Come ho scritto nel primo articolo ottengo solo
“Hai cercato con il motore di ricerca e la tua postazione invia i seguenti dati: ”
In pratica mancano proprio le parti principali (motore , chiave usata ecc.). Naturalmente arrivavo alla pagina da un motore di ricerca (ho povato i piu\\\’ famosi).
Un consiglio?
3 Marzo 2008 alle 09:53
Ma la pagina è già indicizzata. Perchè arrivare da un motore di ricerca vuol dire trovare proprio quella pagina.
Comunque puoi fare una prova, prima di:
return ($ret);
inserire
print_r($ret);
E vedere cosa ti visualizza.
3 Marzo 2008 alle 10:55
Prova a cercare ITCA01008886 con google e clicca sul primo risultato.
In quella pagina vi è un include che richiama il codice dell’articolo con l’aggiunta di print_r($ret);.
Se tolgo print_r($ret); rimane solo
Hai cercato con il motore di ricerca e la tua postazione invia i seguenti dati:
17 Dicembre 2010 alle 10:44
so che è un vecchio articolo ma ho trovato l’errore perchè anche a me non dava nulla. c’è la variabile $da che non è settata quindi non prende il percorso di provenienza, io l’ho sostituita con $ret['provenienza'] in quanto è proprio questo il parametro che manca.