Visualizzazione dei risultati da 1 a 6 su 6

Discussione: contatore visite php

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    contatore visite php

    salve a tutti. vorrei realizzare un mio contatore visite in php.

    l'idea alla base è questa :
    quando un utente si collega (da qualsiasi pagina) salvo in una tabella del db ip e ora (anno, mese, giorno, ora senza minuti e secondi).
    poi tramite un group by faccio il count di questi valori.

    fin quì niente di problematico. (N.B. il contatore non è infallibile : se uno naviga per più di un'ora o a cavallo di un'ora, lo conta due volte, ma per me può anche andar bene così).

    unico problema è che ogni pagina caricata mi aggiunge un valore nel db, e questo un pò mi scoccia; se un utente guarda una ventina di pagine son 20 valori uguali nel db inutili.

    quello che pensavo era di mettere come chiavi tutti e tre i campi, in modo che quando fà l'insert, se trova valori identici, li scarta e non li inserisce.

    secondo voi è una soluzione accettabile o si potrebbe fare in altro modo? e se si è utile utilizzare un insert semplice o sarebbe meglio gestire eventuali errori?

  2. #2
    Ti converrebbe usare le sessioni.
    Quando l'utente si collega (apre la prima pagina) non c'è nessuna sessione: allora lo loggi nel db ed inizi una sezione.
    Se la sessione è già aperta non lo loggi.

    Codice PHP:
    $session_start();
    if(
    $_SESSION["marker"]!="Ok!"){
    salva nel db il log di questo utente
    $_SESSION
    ["marker"]="Ok!";
    }; 
    Rivediti eventualmente il funzionamento delle $_SESSION .
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    uhm si, ottima idea. però per quanto ne sò le sessioni durano al massimo una ventina di minuti lato server in php... quindi non rischio che ogni 20 minuti mi conta 2 visite?

  4. #4
    Puoi stabilire la durata delle sessioni, oppure puoi aggiornare il timer ad ogni nuova pagina visitata, spostando la scadenza a 20 minuti (il valore è stettato nell' .ini di php) di inattività.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  5. #5
    Originariamente inviato da markzzz
    uhm si, ottima idea. però per quanto ne sò le sessioni durano al massimo una ventina di minuti lato server in php... quindi non rischio che ogni 20 minuti mi conta 2 visite?
    No, la sessione non dura 20 minuti... scade dopo 20 minuti di inattività. ma a quel punto l'utente non è più sul tuo sito.

    LA cosa migliore è quella di loggare un utente se non ha nessuna sessione, poi a sessione inizializzata è sempre lui e non lo logghi più. cosi non hai valori ripetuti a cavallo dell'ora.

    Codice PHP:
    session_start();

    if(!isset(
    $_SESSION['log']))
    {
       
    # QUERY INSERT...

       
    $_SESSION['log'] = 'logged';

    Ciao!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    già!!! ottima soluzione grazie

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.