Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    89

    problema con contatore PHP

    Cari ragazzi,
    sto utilizzando in un sito questo script PHP http://www.spacemarc.it/tutorialphp/tutorial1.php che mi permette di contare quante volte è stata cliccata una pagina ....
    Vi faccio un esempio:
    Supponiamo di avere 5 pagine ...
    L'utente visita la pagina_1 poi la pagina_2 .... fino ad arrivare a pagina_5 dove c'è il link con lo script che rimanda alla prima pagina e incrementa di uno il totale ...
    il mio problema è questo: a me interessa che il contatore che si trova nella pagina_5 "conti" SOLO quando l'utente ha fatto tutto il percorso ... da pagina_1 a pagina_5 ma se l'utente "gioca" con i tasti indietro e avanti del broswer cliccando ogni volta sul link il contatore "conta" anche se l'utente non ha fatto tutto il percorso (da pagina1 a pagina 5) !!!
    Come posso fare x evitarlo ?
    Si può impostare su quello script un certo tempo che deve trascorrere da quando è stato cliccato dall'ultima volta ?
    oppure si possono in qualche modo "disabilitare" i tasti avanti e indietro del broswer ?

    Come si fa ?
    grazie

  2. #2
    Utente di HTML.it L'avatar di mlphotographer
    Registrato dal
    Jan 2005
    Messaggi
    541
    Basterebbe usare uno script contatore un attimino più serio, che conteggi le visite reali tramite IP ad esempio, contanto semplicemente i visitatori unici reali e non i reload...
    Ci sono persone che sanno tutto e purtroppo è tutto quello che sanno. (Oscar Wilde)
    "E' l'intuizione creativa, più di ogni altra cosa, che fa sentire a ciascuno di noi che la vita vale la pena di essere vissuta." ( D.W. Winnicot )

  3. #3
    La tua richiesta e mooolto bizzarra, dal momento che le informazioni normalmente rilevate dai contatori sono molto più generali per permettere l'estrazioni di dati medi a livello statistico.
    Se vuoi riportare su scala statistica dati così particolari e frammentari vuol dire che hai già rilevato prima una marea di altre informazioni più utili.

    Comunque, le soluzioni sono molteplici.
    Puoi ad esempio creare un vettore di nome $lista:
    codice:
    $lista = array('0','0','0','0','0');
    contenente 5 elementi numerici e nulli.
    Memorizzi il vettore in una variabile di sessione:
    codice:
    $_SESSION['lista'] = $lista;
    (ovviamente dopo aver chiamato il comando session_start() nell'header HTTP di ogni singola pagina).
    Ad ognuna delle cinque pagine darai un codice identificativo, per esempio $page_id, che corrisponde alla numerazione della pagina secondo l'ordine che vuoi tu:
    codice:
    $page_id = 1; // codice nella prima pagina
    $page_id = 2; // nella seconda, eccetera eccetera...
    ed incrementi l'elemento del vettore corrispondente alla pagina che si sta visitando:
    codice:
    $_SESSION['lista'][$page_id]++;
    Se ti interessa sapere se sono state visitate tutte le 5 pagine fai:
    codice:
    for ($i=0; $i<=5; $i++) {if ($_SESSION['lista'][$i] > 0) { $all_visited = true; } }
    Se la variabile $all_visited è vera vuol dire che i navigatori hanno visto tutto quello che c'è da vedere, giusto?
    Poi sta a te decidere come memorizzarla in una tabella di DBMS...
    Soluzione carina, semplice e leggera, non trovi?
    Ciao
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  4. #4

    pardon...

    Pardon, c'era un errorino che rimedio subito...
    Al posto del ciclo for dello script precedente inserisci questo:
    codice:
    $visited = 0;
    for ($i=0; $i<=5; $i++) { if ($_SESSION['lista'][$i] > 0) { $visited++; } }
    if ($visited >= 5) { $all_visited = true; }
    Quindi se $all_visited è vera, i navigators hanno visto tutto quello che volevi.
    Ciao e bonne nuit...!
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.