• User Attivo

    Recuperare un pezzetto di $_SESSION[REFERER]

    Salve ragazzi!

    sto cercando di farmi uno script per le mie statistiche.... ho ora un problemino che in parte ho risolto, ma ora non riesco più a continuare...

    mi son studiato un po di funzioncine, e sono arrivato a questo strepitoso codice... 🙂

    [php]$q=explode("q=","$_SESSION[REFERER]");[/php]in questo modo mi recupera tutto quello che viene dopo "q="... il problema è ora questo: google utilizza altre variabili e l'url è molto lungo dove ci sono tante altre info, ad esempio:
    http://www.google.it/search?q=forum+giorgiotave&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla🇮🇹official&client=firefox-a

    con il codice sopra descritto, la stringa che mi ritrovo è questa:
    forum+html&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla🇮🇹fficial&client=firefox-a

    ora non mi rimane altro che ( image ) eliminare tutto quello che viene dopo la prima "&" quindi questo:
    &ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla🇮🇹official&client=firefox-a

    dopo dichè dovrebbe esistere una funzione, che ora non ricordo, che mi fa la "sottrazione" tra due stringhe, ma il problema è proprio cercare di tirare fuori questo &ie=utf-8&oe=utf-8&...

    ho allora provato a explodare ancora il risultato $q con questo:
    codice PHP:[php]$e=explode("&",$q);[/php]ma pare non rilevarmi il carattere &...

    mi aiutate?

    grazie!


  • ModSenior

    Da questa pagina dove c'è un esempio analogo sembra che funzioni anche con i doppi apici come hai usato.


  • User Attivo

    @mister.jinx said:

    Da questa pagina dove c'è un esempio analogo sembra che funzioni anche con i doppi apici come hai usato.

    allora...ho fatto una cinquantina di test e sono un po fuso comunque il codice completo che ho utilizzato è:

    [php]
    $q=explode("q=","$_SESSION[REFERER]");
    $e=explode("&",$q[1]);
    $key=$e[0];
    print("$key");
    [/php]il funzionamento è, quindi:

    1. con il primo explode, da $_SESSION[REFERER] prende tutto quello che c'è dopo "q=" e quindi "forum+giorgiotave&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla🇮🇹official&client=firefox-a"
    2. recupero la variabile $q con valore dell'array [1] (con il valore a [0] corrisponderebbe la stringa "http://www.google.it/search?" e quindi non me ne farei nulla...) e prendo con il valore dell'array a [0] quello che viene prima del primo "&"... in questo modo rimane solo il valore effettivamente contenuto tra il "q=" e "&" che corrisponde alla ricerca effettuata.

    il mio errore stava nel fatto che nel secondo explode andavo a prendere l'array senza posizione (quindi senza [0]) che giustamente non poteva andare...

    scrivo qui sotto tutte le info sulle diverse variabili possibili, in modo da rpendere più facile la comprensione a chi non ci avesse capito niente.... (data l'ora ed il livello di rinc*** potrei essermi spiegato male), magari con gli esempi testuali ci si arriva meglio...

    [php]
    // Il $_SESSION[REFERER] di partenza è
    // http://www.google.it/search?q=forum+giorgiotave&ie=utf-8&client=firefox-a

    $q=explode("q=","$_SESSION[REFERER]");
    // $q[0] --> http://www.google.it/search?
    // $q[1] --> forum+giorgiotave&ie=utf-8&client=firefox-a

    $e=explode("&",$q[1]);
    // $e[0] --> forum+giorgiotave
    // (a titolo informativo:
    // $e[1] --> ie=utf-8
    // $e[2] --> client=firefox-a )

    $key=strtr("$e[0]","+"," ");
    /* Sostituisco con uno spazio (Facoltativo: se non mi serve
    o non voglio il carattere + all'interno della stringa) e Passo il
    contenuto dell'array alla variabile $key */

    print("$key");
    // Stampo la variabile $key

    [/php]con questo metodo ho risolto, anche se leggermente macchinoso... se naturalmente avete altre soluzioni...rimango in ascolto...

    ciao!