PHPBBIntegrare PHPBB PHPFunzioni PHP CFunzioni C EcologiaLa mia ecologia   Chi siamoChi è Senamion HomeHome page corner Il Web e l'ecologia

Senamion


Chi siamo:

Il web e l'ecologia, condividere il web e un momento di riflessione sullo stato dell'ecologia e sul suo futuro

Google

[PHP] Capire motore di provenienza e chiave di accesso

11 Luglio 2006 by 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 |

9 Commenti a “[PHP] Capire motore di provenienza e chiave di accesso”

  1. Alessio scrive:

    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

  2. Alessio scrive:

    Al punto 2) manca
    include(”xxxxxxx/landing.php”);

  3. Giovanni scrive:

    Prima di fare l’output occorre chiamare la funzione:

    provenienza();

  4. Alessio scrive:

    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

  5. Giovanni scrive:

    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.

  6. Alessio scrive:

    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?

  7. Giovanni scrive:

    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.

  8. Alessio scrive:

    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:

  9. Ivan scrive:

    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.

Scrivi un commento