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

    Pillolina contatore di accessi

    In questa pillola, che può essere utile per i principianti, spiego come ho realizzato un semplice contatore di accessi che funziona con i cookie.
    Per iniziare creiamo una tabella
    con 4 campi:

    1° campo id con l'opzione auto_increment in modo che ad ogni inserimento di dati si incrementa in automatico;
    2° campo data dove andremmo a scrivere la data per ogni accesso;
    3° campo ora dove andremmo ad inserire l'ora di ogni accesso;
    4° campo IP dove andremmo ad inserire l'IP del visitatore;


    Questo è il codice sql per creare la tabella.

    codice:
    CREATE TABLE `visite` (
      `id` int(11) NOT NULL auto_increment,
      `data` varchar(20) NOT NULL default '',
      `ora` varchar(20) NOT NULL default '',
      `ip` varchar(20) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1581 ;
    Passiamo al codice PHP



    Codice PHP:
    <?
    //ricavo l'ip del visitatore
    $ip getenv("REMOTE_ADDR");
    //ricavo la data giorno/mese/anno
    $giorno=date("d/m/Y");
    //ricavo l'orario ore:minuti:secondi
    $ora=date("H:i:s");
    //se la variabile 'giorno' del cookie è diversa della data attuale
    if($_COOKIE['giorno']!=$giorno)
    {
    //setto il cookie con la variabile giorno = alla data di oggi
    setcookie ("giorno",$giorno,time()+79200);
    //mi connetto al database MySql
    $db=mysql_connect("nomehost","nome",'pass') or die ("Errore durante la connessione al database");
    //creo la query sql
    $sql="INSERT INTO visite (data,ip,ora) VALUES('".$giorno."','".$ip."','".$ora."')";
    //applico la query sul database
    mysql_db_query("nomedatabase",$sql,$db);
    mysql_close();
    };
    //

    ?>

    Questa è la parte principale di questo script.
    Funziona così:
    Inizialmente mi ricavo tutti i dati che mi servono per l'inserimento nel DB, di seguito
    Creo una condizione (se la variabile 'giorno' del cookie è diversa della data attuale)
    invia il cookie all'utente con la variabile giorno = alla data attuale,
    in modo che non inserisce i dati nel DB per ogni aggirnamento della pagina e di suguito scrive i dati nella tabella.



    Seconda parte
    Codice PHP:
    <?
    // Lettura
    //creo la query che mi seleziona tutti gli "id"
    $query ="SELECT id FROM visite";
    //applico la query al database
    $result mysql_db_query('nomedatabase',$query,$db);
    //mi ricavo il numero di righe che sarà il numero di visite che hai ricevuto
    $visite=mysql_num_rows($result); 
    mysql_close();
    ?>
    Spero che funzioni.
    Voglio dire un'ultima cosa:
    Il 5% degli utenti connessi ad internet ha i cookie disabilitati e quindi ad ogni refresh si aggiunge una visita, questo si può evitare facilmente però ora non ho il tempo di scrivere. :quote:

    Semplice vero?

  2. #2

  3. #3
    fa schifo :zamm:
















    no dai scherzo
    complimenti ottima guida

    MSI KT4V (MS-6712) AMD Athlon XP 2400+@2000 Mhz Vcore 1.65 Fsb 133 Multiplier 15 1x256 SDRAM PC2700 Ati Radeon 9100 Tv-Out Samsung SD1533D 14 Gb@5400 rpm (eMule power) Maxtor 6y080L0 80 Gb@7200 rpm

  4. #4
    alla fine intendevi le sessioni?
    MSI KT4V (MS-6712) AMD Athlon XP 2400+@2000 Mhz Vcore 1.65 Fsb 133 Multiplier 15 1x256 SDRAM PC2700 Ati Radeon 9100 Tv-Out Samsung SD1533D 14 Gb@5400 rpm (eMule power) Maxtor 6y080L0 80 Gb@7200 rpm

  5. #5
    O le sessioni oppure fare dei controlli sull'ip e sulla data in modo che non verranno inseriti ip uguali in 24 ore.

  6. #6
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Carmineabomb mi puoi aiutare??? AIUTO!!!

  7. #7
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696
    aggiunta

  8. #8

  9. #9
    Piccola modifica invece di fare 2 campi per la data e per l'ora
    2° campo data dove andremmo a scrivere la data per ogni accesso;
    3° campo ora dove andremmo ad inserire l'ora di ogni accesso;

    create un solo campo dove dentro gli andate ad inserire il timestamp.

    dal time stamp si può ricavare la data e l'ora facendo:

    $data_e_ora=date("d-m-Y H:i",$timestamp);

  10. #10
    Per chi vuole creare un contatore per vedere quanti utenti ci sono on-line può dare uno sguardo qui

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 © 2024 vBulletin Solutions, Inc. All rights reserved.