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: