PHP: contatore

Alex221

Nuovo Alfista
23 Febbraio 2004
1,447
0
36
Monselice(PD)
allora,io ho inserito nelle mie pagine questo contatore,con database mysql,però mi conta anche tutti i refresh e non vorrei mi intasasse il database.

io non conosco tanto il php,chi mi aiuta?

il codice che uso attualmente è qeusto:

Codice:
<?
$GIORNO= array("Domenica ","Lunedì ","Martedì ","Mercoledì ","Giovedì ","Venerdì ","Sabato ");
$DATA=DATE("d/m/Y");
$ORA=date("H:i:s");
$dbhost="******";
$dbname="******";
$dbuser="*******";
$dbpass="*******";
$conn=mysql_connect($dbhost,$dbuser,$dbpass) or die ("impossibile collegarsi");
mysql_select_db($dbname,$conn) or die ("impossibile collegarsi");

$sql = "SELECT ip_REMOTO FROM statistiche";
$sql = "INSERT INTO statistiche (IP_REMOTO,HOST_REMOTO,URL,PAG_ARRIVO,DATA,ORA) values ('$REMOTE_ADDR','$REMOTE_HOST','$PHP_SELF','$HTTP_REFERER','$DATA','$ORA')"; 
$res =mysql_query($sql,$conn);
?>
 
Secondo me non ti intasa niente... sono pochi byte a riga considerando poi che probabilmente non avrai milioni di accessi no? puoi sempre pulirlo una volta al mese e salvare solo il riassunto su file...

Supponiamo che vuoi le statistiche per pagina.html, ecco qui le due query da fare per i refresh e per gli accessi unici:

Codice:
$sql_accessi_totali = "SELECT COUNT(*) FROM statistiche WHERE URL='pagina.html'";
$sql_accessi_unici = "SELECT COUNT(*) FROM statistiche WHERE URL='pagina.html' GROUP BY IP_REMOTO";


Ah nei campi è meglio che salvi il timestamp e non l'ora formattata, altrimenti non puoi fare confronti. Elimina le colonne DATA e ORA, crea una colonna TS (di tipo INT) e metti questo

Codice:
$TS = time();
$sql = "INSERT INTO statistiche (IP_REMOTO,HOST_REMOTO,URL,PAG_ARRIVO,TS) values ('$REMOTE_ADDR','$REMOTE_HOST','$PHP_SELF','$HTTP_REFERER','$TS')";

:OK)
 
Volendo potresti togliere gli IP che hanno differenza TS < soglia, se vuoi evitare tanti refresh.

ma, in fondo, che ti frega? ;)
 
ho il contatore che mi si ferma quando arriva a 127.. :mecry) :confusbig)
non ho modificato il file,è questo cmq:

Codice:
$GIORNO= array("Domenica ","Lunedì ","Martedì ","Mercoledì ","Giovedì ","Venerdì ","Sabato ");
$DATA=DATE("d/m/Y");
$ORA=date("H:i:s");
$dbhost="********";
$dbname="********";
$dbuser="********";
$dbpass="********";
$conn=mysql_connect($dbhost,$dbuser,$dbpass) or die ("impossibile collegarsi");
mysql_select_db($dbname,$conn) or die ("impossibile collegarsi");
$sql = "SELECT ip_REMOTO FROM statistiche";
$sql = "INSERT INTO statistiche (IP_REMOTO,HOST_REMOTO,URL,PAG_ARRIVO,DATA,ORA) values ('$REMOTE_ADDR','$REMOTE_HOST','$PHP_SELF','$HTTP_REFERER','$DATA','$ORA')"; 
$res =mysql_query($sql,$conn);
?>

perchè quando arrivo a 127 record mi si blocca? :cry:
 
Alex221":37j5whil ha detto:
ho il contatore che mi si ferma quando arriva a 127.. :mecry) :confusbig)
non ho modificato il file,è questo cmq:

Codice:
$GIORNO= array("Domenica ","Lunedì ","Martedì ","Mercoledì ","Giovedì ","Venerdì ","Sabato ");
$DATA=DATE("d/m/Y");
$ORA=date("H:i:s");
$dbhost="********";
$dbname="********";
$dbuser="********";
$dbpass="********";
$conn=mysql_connect($dbhost,$dbuser,$dbpass) or die ("impossibile collegarsi");
mysql_select_db($dbname,$conn) or die ("impossibile collegarsi");
$sql = "SELECT ip_REMOTO FROM statistiche";
$sql = "INSERT INTO statistiche (IP_REMOTO,HOST_REMOTO,URL,PAG_ARRIVO,DATA,ORA) values ('$REMOTE_ADDR','$REMOTE_HOST','$PHP_SELF','$HTTP_REFERER','$DATA','$ORA')"; 
$res =mysql_query($sql,$conn);
?>

perchè quando arrivo a 127 record mi si blocca? :cry:

Hai messo la colonna SQL a un valore numerico con troppi pochi bit...

Usa BIGINT e vai tranquillo :asd) :asd) :asd)
 
Top