• User

    Referrer List in Javascript

    Ciao,
    ho visto su un sito uno script che ti permette di avere una referrer list visibile a tutti e disponibile per tutti grazie ad un codice.
    come ad es.
    Heracleum Referrer List
    (non potendo inserire un link la si può trovare con google)

    Come funziona? come posso farlo anche io?
    Grazie mille!


  • User Attivo

    Ho trovato un qualcosa che potrebbe essere quello che indichi su un sito di 3° livello presente su altervista.
    JavaScript poiché opera sul lato client ha gli script sorgenti presenti nel codice HTML, quindi basta che lo visualizzi e trovi come fanno a spedire sul server il referrer.
    Fino a questo punto lo puoi fare bene modificando opportunamente il codice JS (tra l'altro sono necessari tutti quei dati oltre il referrer o se ne potrebbero fare a meno?), ma da ora in avanti enuncerò solamente una delle possibili soluzioni per completare la parte mancante. Il server memorizzerà l'informazione ricevuta in una struttura di dati (database oppure file di testo in base al contratto stipulato con l'hoster).
    Quando un client richiederà quella pagina, uno script lato server cercherà una serie di istanze suddivise per giorno in cui sono state generate. Eventualmente si potrebbero rimuovere quelle più remote di un certo periodo per velocizzare l'esecuzione.

    Potrebbe essere utile sapere come fare ad estrarre il referrer in JS:

    [HTML]
    document.referrer
    [/HTML]

    Si potrebbero fare delle obiezioni su quanto affermato in quel sito, ma rischiano di essere off topic.


  • User

    Grazie mentelibera!
    Ho provato ad usare i codici presenti nell' HTML che usano loro ma non mi funziona... non mi si visualizza niente 😢
    non capisco dove sbaglio..


  • User Attivo

    Purtroppo non metti il codice pertanto per ora siamo un po' astratti oltre a non sapere quale linguaggio server è installato, eventuali database... Con alcune ricerche su google ci sono tutorial su come fare sia il salvataggio che la lettura dei dati in base alle informazioni mancanti. Anche su questo forum nella sezione lato server ho quasi certezza che siano stati trattati almeno una volta. Invece preferirei focalizzare l'attenzione su JS essendo l'argomento principale della sezione.
    La parte vera e propria del codice JavaScript è richiamata da un file esterno all'Html di quella pagina che è sempre contenuto nel loro dominio, vedi il valore all'attributo src che dovrebbe essere del tipo ??.js avendo sostituito ad ogni lettera un "?".
    Ora che hai scaricato ed aperto quel file, per prima cosa dovrai cambiare l'indirizzo del file che salverà sul server le informazioni che riceverà in base al tuo dominio. Infatti se non è cambiata quando esegui lo script verrà registrato sul dominio da cui hai preso lo script essendo indicato con un indirizzo assoluto...
    Inoltre la variabile che ti interessa è l'ultima dichiarata in quel file, riga 5.
    Altro "piccolo" errore che potrebbe rischiare di far perdere molto tempo riguarda i permessi dell'esecuzione dello script.


  • User

    ciao, grazie per l'aiuto.
    non riesco a postare il codice perchè dice che non sono utente premium :arrabbiato:
    come faccio a scriverlo?


  • User Attivo

    Probabilmente nel codice che cerchi di postare c'è almeno un URL assoluto: trasformali ad indirizzi relativi o metti degli spazi al loro interno.

    Altra cosa che permette la leggibilità del codice è quello di utilizzare gli appositi delimitatori visibili nella "Modalità Avanzata" che trovi poco sopra l'area in cui componi il messaggio (in fondo alla seconda riga di icone).
    IMHO quando c'è da postare del codice conviene vederne l'anteprima, così se avessi scelto un delimitatore non appropriato hai possibilità di cambiarlo.


  • User

    Grazie ancora per la risposta,
    questo è il codice Javascript che ho preso da quel sito

    if (hr_refs != 'hr'){
     var hr_red = (window.hr_redundant)?'&red=1':'';
     var hr_ctt = (window.hr_headertitle)?'&ctt='+escape(hr_headertitle):'';
     var hr_doc = (window.hr_myurl)?hr_myurl:document.location;
     var hr_refs = "<script type=\"text/javascript\" src=\" h t t p : / / h e r a c l e u m . a l t e r v i s t a . o r g / r e s / r e f s / l i s t 2 . p h p ? lng=1"+ hr_red + hr_ctt +"&doc="+escape(hr_doc)+"&rfr="+escape(document.referrer)+"\"></scr";
     document.write(hr_refs+"ipt>");
     hr_refs = 'hr';
    }else
     document.write("The Referrer List script line <u>is repeated</u>!<br />Please modify your HTML code and be sure this script is called only once.<br />");
    
    
    
    

    e questo quello che nella pagina di interesse che richiama il lo script

    
     <script type="text/javascript" src=" h t t p : / / h e r a c l e u m . a l t e r v i s t a . o r g / r e s / r e f s / e n  . j s "></script> <br><a href="h t t  p : /  / h e r a  c l e u m . a l t e r v i s t a . o r g / " target="_blank">Heracleum blog & web tools</a> 
    
    

    è ovvio che devo fare le debite sostituzioni con gli indirizzi delle pagine del mio sito ma quello che non capisco è a cosa serve la pagina che ho evidenziato in rosso..
    forse è quello che non mi fa funzionare il tutto...


  • User Attivo

    L'indirizzo che hai scritto in rosso indica dove si trova il file che processerà i dati che vengono mandati attraverso lo script JavaScript, e per questo dicevo di sostituirlo.
    Più precisamente il file che si occuperà di raccogliere le informazioni ricevute è "list2.php" che è contenuto scendendo dalla root seguendo le cartelle annidate che si leggono da sinistra a destra, quindi res e poi refs.
    Come già dicevo quello script manda anche altre informazioni al server che potrebbero essere inutili, mentre il parametro che ti serve è "rfr" con il suo valore associato.
    In tal caso potresti rimuovere la stringa sulla destra della parte scritta in rosso (oltre a cancellare le righe soprastanti dalla n. 2 alla 4 incluse):

    [HTML]lng=1"+ hr_red + hr_ctt +"&doc="+escape(hr_doc)+"&
    [/HTML]
    ma lascerai quello che è presente dopo la porzione appena evidenziata.

    In base al tuo server dovrai per prima cosa recuperare il contenuto della variabile rfr che è passata con il metodo get, poi procedere con la metodologia proposta.


  • User

    Grazie ancora e scusa se rispondo sempre tardi..

    A questo punto mi sorge una domanda...
    ho bisogno di un database per far funzionare tutto questo?
    perchè sinceramente non so come muovermi... pensavo che recuperando lo script funzionasse tutto magicamente da solo ma visto che a quanto pare è più difficile del previsto non penso di essere in grado e non voglio farti perdere tempo...
    Non so come si recupera una variabile ne tanto meno come si invia (dove?) con il metodo get.. insomma.. non so niente... speravo fosse tutto più facile 😢

    grazie mille

    :arrabbiato:


  • User Attivo

    Penso che con la curiosità e la voglia di apprendere ce la potrai fare. In Rete ci sono numerose guide per ogni singolo aspetto che contribuiranno a portarti alla soluzione. Cosa importante è anche fare tante prove...
    Ora ho pochissimo tempo a disposizione, ma anche in altre parti del dominio ci sono articoli, per esempio:
    http :// www . giorgiotave. it/wikigt/os/Come_recupero_i_dati_inviati_da_un_form%3F
    http :// www . giorgiotave. it/guide-webmaster/php/mysql-database/
    :ciauz:


  • User

    grazie, mi sono messo tra i preferiti i siti che mi hai consigliato e quando ho tempo e voglia me li guarderò!