Visualizzazione risultati 1 fino 1 di 1

Discussione: Creare contatore visite uniche basandosi su visitatori on-line...

  1. #1
    Data registrazione
    30-03-2009
    Residenza
    Bolzano
    Messaggi
    127

    Predefinito Creare contatore visite uniche basandosi su visitatori on-line...

    Vorrei aggiungere al sito un contatore visite che funzioni per davvero, così ora usando questo codice PHP:


    Codice PHP:
    <?php
    $host
    ="localhost";
    $database="my_database";
    $user="user";
    $password="password";
    $tabella="useronline";
    $linkdata=@mysql_connect($host,$user,$password);//riga parametri di collegamento database

    //ricavo il codice ip e l'orario
    $codip=$_SERVER['REMOTE_ADDR'];//estraggo il codice ip del navigatore
    $tempo=time();//ricavo il timestamp, numero che identifica l'orario del momento

    //adesso verifico se il codice ip è nella tabella oppure no
    $ric=@mysql_db_query($database,"select data from ".$tabella." where id='".$codip."' ",$linkdata);
    $numric=@mysql_num_rows($ric);
    if(
    $numric!=0){//se l'ip è nella tabella aggiorno l'orario
    @mysql_db_query($database,"update ".$tabella." set data=".$tempo." where id='".$codip."' ",$linkdata);
    }
    else{
    //se l'ip non è nella tabella lo inserisco
    @mysql_db_query($database,"insert into ".$tabella."(id, data) values ('".$codip."','".$tempo."')",$linkdata);
    //se in questo punto aumentiamo di 1 il numero di data dove id=1 (la prima riga della tabella) avremo anche un contatore di accessi del sito
    }

    //adesso elimino tutte le righe che eccedono nella differenza tempo
    $difdata=$tempo-86400; //24 ore
    $ric2=@mysql_db_query($database,"select data from ".$tabella." where id!=1 ",$linkdata);
    $veric2=@mysql_num_rows($ric2);
    $numlinee=0;
    while (
    $numlinee<$veric2){
    $data=@mysql_result($ric2,$numlinee,"data");
    if(
    $data<$difdata){
    @
    mysql_db_query($database," delete from ".$tabella." where data=".$data." ",$linkdata);
    }
    $numlinee++;
    }
    //tabella dove vedremo in numero dei navigatori online:
    $fine=@mysql_db_query($database,"select * from ".$tabella." where id!=1 ",$linkdata);
    $online=@mysql_num_rows($fine);
    echo
    "".$online."";

    //selezioniamo un numero casuale (per non stressare il database) che ottimizza la tabella, in alcune condizioni per ottimizzare la tabella occorre circa un secondo, pertanto cercate di ottimizzarla unatantum
    $ran=rand(0,5);
    if(
    $ran==5){
    @
    mysql_query("OPTIMIZE TABLE ".$tabella." ");
    }
    ?>

    ho un contatore di visite che ogni 24 h cancella tutti gli indirizzi IP salvati nella tabella del database, E CANCELLA ANCHE IL NUMERO DEGLI UTENTI UNICI CHE SI SONO COLLEGATI ALLA PAGINA PHP CONTENENTE QUESTO CODICE.

    Come faccio a fare in modo che ogni 24 h, cancella tutti gli indirizzi ip dei navigatori che hanno aperto la pagina, ma che non venga resettato il numero ?


    Vi riporto anche l'sql:


    Ultima modifica di fabrizioroccapc : 13-09-2010 alle ore 14.25.38

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •