Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: contatore accessi

  1. #1

    contatore accessi

    Ciao a tutti,
    ho trovato un contatore accessi fatto con javascript. Da premettere che il contatore l'ho voluto inserire solo sulla home (come logico che sia).
    Il mio problema è questo:

    vorrei cortesemente sapere come posso fare in modo che venga conteggiata una sola volta la visita di un utente, senza cioè che venga contato l'accesso alla home ogni volta che l'utente accede a pagina iniziale.
    Come posso fare? Vi prego, aiutatemi.
    Forse, facendo in modo di memorizzare l'id dell'utente una volta: così viene riconosciuto l'id che ogni volta accede alla home e viene conteggiato l'accesso una sola volta.

    Vi ringrazio anticipatamente!
    ciao


    P.S.: scusate il gioco di parole.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    con i cookie,
    però vorrei proprio vederlo questo contatore d' accessi in javascript...

  3. #3

    codice javascript

    Ciao,
    allora in HEAD inserisci questo:

    <style>
    .counter{
    background-color:black;
    color:yellow;
    font-weight:bold;
    }
    </style>
    <SCRIPT>


    expireDate = new Date
    expireDate.setMonth(expireDate.getMonth()+6)
    jcount = eval(cookieVal("jaafarCounter"))
    jcount++
    document.cookie = "jaafarCounter="+jcount+";expires=" + expireDate.toGMTString()

    function cookieVal(cookieName) {
    thisCookie = document.cookie.split("; ")
    for (i=0; i<thisCookie.length; i++){
    if (cookieName == thisCookie[i].split("=")[0]){
    return thisCookie[i].split("=")[1]
    }
    }
    return 0
    }

    function page_counter(){
    for (i=0;i<(7-jcount.toString().length);i++)
    document.write('<span class="counter">0</span>')
    for (y=0;y<(jcount.toString().length);y++)
    document.write('<span class="counter">'+jcount.toString().charAt(y)+'</span>')
    }

    </SCRIPT>

    mentre in BODY questo:

    Questo sito &egrave;
    stato visitato
    <script>
    page_counter(jcount);
    </script>
    volte.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    come era facile immaginare in javascript puoi al massimo visualizzare all' utente il numero di visite dell' utente stesso,
    vuoi modificare lo script in modo che non conti ulteriori visite nell' arco delle 24 ore successive alla prima?
    puoi cambiare tutto lo script nell' head con questo
    codice:
    function setCk(name,value,expires){
      var ck=name+"="+escape(value)+"; expires="+expires.toGMTString()
      document.cookie=ck
    }
    
    function getCk(name){
      var ck=document.cookie.split("; ")
      for (var i=0; i<ck.length; i++){ 
        if (name==ck[i].split("=")[0]){ 
          return ck[i].split("=")[1] 
        } 
      } 
      return null
    }
    
    function page_counter(){ 
      for (i=0;i<(7-jcount.toString().length);i++) 
        document.write('<span class="counter">0</span>') 
      for (y=0;y<(jcount.toString().length);y++) 
        document.write('<span class="counter">'+jcount.toString().charAt(y)+'</span>') 
    } 
    
    var expDate=new Date
    var jcount=(getCk('count')!=null)?parseInt(getCk('count')):'0'
    if(getCk('today')==null){
      jcount++
      expDate.setDate(expDate.getDate()+1)
      setCk('today','ok',expDate)
    }
    expDate.setMonth(expDate.getMonth()+6) 
    setCk('count',jcount,expDate)
    ciao

  5. #5

    help me!

    Ciao,
    ho provato il codice ma non è quello che intendo!
    Praticamente è questo che intendo:

    1) Un utente entra nel sito e il contatore registra l'accesso (ammettiamo che l'utente sia il primo ad entrare)
    2) Poi clicca su un'altra sezione (per es. dove siamo)
    3) Poi vuole ritornare sulla home e a questo punto il contatore non deve registrare l'accesso di questo utente di nuovo memorizzandolo come secondo accesso.

    Praticamente, ad ogni utente deve corrispondere un solo accesso.

    ciao e grazie per l'aiuto

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: help me!

    Originariamente inviato da Le iene ridens
    1) Un utente entra nel sito e il contatore registra l'accesso (ammettiamo che l'utente sia il primo ad entrare)
    2) Poi clicca su un'altra sezione (per es. dove siamo)
    3) Poi vuole ritornare sulla home e a questo punto il contatore non deve registrare l'accesso di questo utente di nuovo memorizzandolo come secondo accesso.

    Praticamente, ad ogni utente deve corrispondere un solo accesso.
    ma quali utenti? x lo script c' è solo un utente e ci sarà sempre e solo lui!

    dai, ho capito cosa intendi
    si potrebbe provare a far scadere il cookie "today" alla chiusura del browser
    e questo si ottenerebbe non indicando una scadenza x il cookie

    uso il condizionale perchè se non ricordo male c' è un bel bug al proposito sulle versioni recenti di IE
    mi tolgo il dubbio e ti faccio sapere

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    function setCk(name,value,expires){
      var ck=name+"="+escape(value)+((expires) ? "; expires=" + expires.toGMTString() : "")
      document.cookie=ck
    }
    
    function getCk(name){
      var ck=document.cookie.split("; ")
      for (var i=0; i<ck.length; i++){ 
        if (name==ck[i].split("=")[0]){ 
          return ck[i].split("=")[1] 
        } 
      } 
      return null
    }
    
    function page_counter(){ 
      for (i=0;i<(7-jcount.toString().length);i++) 
        document.write('<span class="counter">0</span>') 
      for (y=0;y<(jcount.toString().length);y++) 
        document.write('<span class="counter">'+jcount.toString().charAt(y)+'</span>') 
    } 
    
    var expDate=new Date
    var jcount=(getCk('count')!=null)?parseInt(getCk('count')):'0'
    if(getCk('today')==null){
    	jcount++
    	setCk('today','ok')
    }
    expDate.setMonth(expDate.getMonth()+6) 
    setCk('count',jcount,expDate)
    ok, con la 6.0 sp1 funziona, con altre versioni di IE non garantisco
    ciao

  8. #8

    risolto

    Ciao e grazie,
    adesso funzia!!!

  9. #9

    nooooooooo

    ci risiamo!!
    Praticamente succede questo:

    entro una volta nel sito e il contatore segnala il mio primo accesso (e fin qua tutto ok). Vado in un'altra sezione e poi ritorno alla home dove c'è il contatore e mi calcola sempre il primo accesso (e anche questo va bene).

    E arrivo al dunque:

    Mi disconnetto da Internet. Quando mi ricollego e vado sul sito mi conta sempre il primo accesso (questo non deve accadere xinod ).
    Siccome ho un ip dinamico il contatore mi dovrebbe calcolare come secondo utente e non lo fa!
    Come posso fare? Per favore rianalizza l'ultimo codice che mi hai dato. Non lo faccio io perchè non sono esperto di javascript!
    Mi serve al + presto

    grazie con sempre

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    no, guarda, non ho neanche un secondo da dedicare al problema
    e poi c' è ben poco da fare...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.