Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Un contatore visite (univoco) per una pagina dinamica

    Ciao a tutti,
    volevo chiedere a voi maestri (io sono alle prime armi) come poter creare uno script in PHP che conteggi il numero delle visite di una pagina (scheda cliente) dinamica di un sito che abbiamo realizzato.

    Io ho trovato in giro questo script che funziona bene, l'ho inserito e fatto funzionare, però la pagina nella quale ho messo questo script è dinamica e per ogni cliente che visualizza associa un relativo ID. Questo script, indipendentemente dall'ID della pagina aumenta sempre di 1 il conteggio delle visite.
    Come potrei modificarlo per farlo funzionare bene, cioè facendogli conteggiare le visite in base all'ID del cliente e in modo univoco?

    Ecco lo script:

    <?

    // settiamo un numero di riferimento UNIVOCO per questa pagina
    $numero_pagina = "1";

    // update del numero di letture dell'articolo visualizzato
    $hits=mysql("$DBName" ,"SELECT conteggio FROM nome_tabella WHERE pagina LIKE '$numero_pagina'");
    while ($row = mysql_fetch_row($hits)) {
    $vecchie_letture=$row[0];
    $update_hits = ($vecchie_letture + 1);
    mysql("$DBName" ,"UPDATE nome_tabella SET conteggio='$update_hits' WHERE pagina LIKE '$numero_pagina'");
    }
    ?>

    // inizio layout della pagina
    <html>
    <head>...ecc
    // segue il codice html o php o altro per il layout della pagina

    // potete inserire il contatore (visualizzatore del numero delle letture della presente pagina dove meglio credete)
    // ecco il codice
    <?
    $visualizzazioni=mysql("$DBName" ,"SELECT conteggio FROM nome_tabella WHERE pagina LIKE '$numero_pagina'");
    while ($row = mysql_fetch_row($visualizzazioni)) {
    $letture=$row[0];
    echo "pagina visualizzata $letture volte dalla sua pubblicazione";
    }
    ?>

    Mi date una mano per favore?
    Grazie.

  2. #2
    Questo script prende in modo univoco l' ip del visitatore. dovrebbe funzionare un po come le visualizzazioni di you****, cioè prende e conta una sola volta la persona anche se quest' ultima rivisita lo stesso la pagina. insomma in modo univoco. :-)

    Codice PHP:
    <?php
    // configurazione per la connessione al db

    //Nel 99% dei casi resta localhost
    $dbhost "localhost";

    //Inseriamo il nome utente per il database
    $dbuser "user";

    //Inseriamo la password per il database
    $dbpass "pass";

    //Inseriamo il nome del database
    $dbname "dbnome";

    //Inseriamo il nome della tabella interessata
    $table_visite "visite";

    //Inseriamo il testo che comparira' davanti al contatore
    $testoutentionline "visite: ";

    //Definiamo le variabili

    //Catturiamo la data e l'orario in cui un utente entra nel nostro sito
    $date date("Y/m/d");
    $time date("H:i:s");

    //Prendiamo l'ip del visitatore
    $ip getenv("REMOTE_ADDR");

    //Connettiamoci al server MySql
    $connect mysql_connect($dbhost,$dbuser,$dbpass);

    //Selezioniamo il database che ci interessa
    mysql_select_db($dbname,$connect);

    //Inviamo al database i dati del client che si connette
    $query mysql_query("INSERT INTO $table_visite (id, ip, date, time) VALUES ('$id','$ip','$date','$time')" ,$connect);

    //Selezioniamo gli ip unici 
    $query mysql_query("SELECT DISTINCT ip FROM $table_visite",$connect);

    //Calcoliamo il numero di righe ottenute dalla query

    $visite mysql_numrows($query);

    //Visualizziamo il numero di utenti on line
    //Aggiustate la visualizzazione come preferite
    echo $testovisite;
    echo 
    "
    "
    ;
    echo 
    $visite;
    //Chiudiamo la connessione al databse
    mysql_close();
    ?>
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  3. #3
    ciao,
    innanzitutto grazie per la risposta ...

    Due domande:

    1) Ma questo script mi da come risultato il numero di visite della pagina ? o il numero di visitatori on line ? A me serve conteggiare il numero di visite che quella pagina realizza ...

    2) Se questa pagina però è dinamica, il tuo script riesce a separare il conteggio delle visite in base all' ID cliente?

    Grazie

  4. #4
    a titolo informativo, qual' è il tuo livello in php?

    cmq esaudisco le tue risposte, lo script che ti ho postato innanzitutto lavora sul Ip, e non sull id come da te richiesto.

    cmq ti spiego cosa fa questo script:

    ogni singolo visitatore, che sia lo stesso aggiornando una pagina o che siano persone fisiche diverse vengono inserite nel db settanto id, ip, data, e orarioquindi ogni visita finisce nel tuo db.

    cosa fa la query? la query prende in modo distinto gli indirizzi ip, cosa vuol dire?

    che se utente1 con indirizzo ip 217.133.100.157
    ti fa 10 visite, risulterà 10 volte nel database, ma al conteggio risultera 1 perche la query prende in modo distinto gli ip.

    esempio, se nel mese di ottobre hai le seguenti visite:
    mario ti visita 5 volte, giorgia 4 volte e massimo 15 volte, come contatore avrai 3 che è il numero di persone diverse che ti hanno visitato e non la somma delle visite fatte magari dalla stessa persona e quindi stesso ip.

    per definizione aggiungo che il presente script calcola quante persone DIVERSE hanno visto la tua pagina. è quello che volevi?
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  5. #5
    ma più o meno il tuo script è quello che cercavo (e ti ringrazio per l'aiuto che mi stai dando), però in pratica mancherebbero questi due aspetti:

    1) Le visite univoche dovrebbero essere conteggiate per giorno (adesso sono univoche per sempre, giusto?) ... cioè se domani ritorno sul sito dovrei far riconteggiare come visita il mio IP ... (google Analitycs non so se ad esempio le riconteggia per giorno o per ...)

    2) Inoltre il tuo script dovrebbe però associare queste visite all' ID della pagina visitata.
    Per capirci: nel mio sito ho diverse schede aziende, tipo la scheda azienda di "Pippo spa", "Pluto srl", "Ciccio spa", "Pasticcio snc", ... E ognuna di queste aziende viene caricata nella stessa pagina che avrà ovviamente passato il relativo ID che in base a questo visualizza i relativi dati come la ragione sociale, il logo, la descrizione, ....
    Questo è infatti il nome della mia pagina: "scheda-azienda.php?id=30&Pippo".

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    il campo della data c'è già..
    per l'altro campo devi aggiungere un campo al DB intero che puoi chiamare id_riferimento (o come ti pare)
    e lo trovi in GET.. è l'id della pagina che l'utente sta visitando..

  7. #7
    ma come posso modificare questo campo data in modo da fargli controllare se l'IP è lo stesso solo giorno per giorno e non per sempre ...

    Cioè devo controllare se l'IP è lo stesso di giorno in giorno ... come posso modificarlo ?

    Grazie mille e scusate se vi risulto un po' imbranato !!! sto imparando piano piano, abbiate pazienza

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    mi sa che non hai capito come funziona..
    l'inserimento dell'ip lo fa comunque correttamente solo che puoi giorno per giorno, e non solo, vedere quanti IP univoci ci sono.. e non solo..
    devi lavorare con le query..
    non so che tipo di campo maurorhcp89 ha assegnato a date e time nel suo progetto.. io metterei un bel timestamp, così che la data e l'ora le prende direttamente da là..

    se non metti nemmeno una riga di codice tuo è pure difficile andare avanti..

  9. #9
    ok in base ai vostri suggerimenti ho elabarato questo che sembra funzionare bene:

    //Inseriamo il nome della tabella interessata
    $table_visite = "contatore";

    //Catturiamo la data e l'orario in cui un utente entra nel nostro sito
    $date = date("Y/m/d");
    $time = date("H:i:s");

    //Prendiamo l'ip del visitatore e l'ID specifico della pagina del cliente
    $ip = getenv("REMOTE_ADDR");
    $id = $azienda['ID'];

    //Inviamo al database i dati del client che si connette
    $query = mysql_query("INSERT INTO $table_visite (id, ip, date, time) VALUES ('$id','$ip','$date','$time')");

    //Selezioniamo gli ip unici
    $query = mysql_query("SELECT DISTINCT ip FROM $table_visite WHERE date='$date' && id='$id' ");

    //Calcoliamo il numero di righe ottenute dalla query
    $visite = mysql_numrows($query);

    Poi per visualizzare faccio un semplice:

    <?php
    echo "$visite";
    ?>

    Cosa ne dite?

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non va bene... mi autoquoto..
    per l'altro campo devi aggiungere un campo al DB intero che puoi chiamare id_riferimento (o come ti pare)
    e lo trovi in GET.. è l'id della pagina che l'utente sta visitando..
    in effetti dando una scorsa, anche il codice iniziale di maurorhcp89 non è corretto..
    @maurorhcp89: dove lo prendi l'id? non è la tuo id un valore autoincrement?
    la query secondo me dovrebbe essere così
    Codice PHP:
    $query mysql_query("INSERT INTO $table_visite (id, ip, date, time, id_riferimento) VALUES ('','$ip','$date','$time', '$id')"); 

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.