salve, ho realizzato il mio contatore visite che mi aggiunge in una tabella del DB ogni utente/ip/data/tipologia di browser per ogni visitatore.
il codce è questo :
Codice PHP:
<?
// loggo se non c'è la sessione e se non provengo dalla pagina logout (altrimenti mi distrugge la sessione e conta come una nuova visita)
if((!isset($_SESSION['log'])) && (!isset($_GET['general']) or ($_GET['general']!="logout"))) {
$ip=$_SERVER['REMOTE_ADDR'];
$date=date("Y-m-d H:i:s");
$browser=$_SERVER['HTTP_USER_AGENT'];
$browser=mysql_real_escape_string($browser);
if(isset($_SESSION['nickname'])) {
$user=$_SESSION['nickname'];
} else {
$user="unknownABCD1234";
}
$insert=mysql_query("INSERT INTO views (ip, user, date, browser) VALUES ('$ip', '$user', '$date', '$browser')", $mydb);
$_SESSION['log']='logged';
$_SESSION['iplog']=$ip;
$_SESSION['datelog']=$date;
}
?>
per vedere poi quanti utenti sono entrati, faccio la conta delle righe aggiunte al DB.
ora, tutto funziona perfettamente. solo per il fatto che mi ritrovo dati di questo genere sul DB :
ID: 1
IP : 95.108.244.252
USER : unknownABCD1234
DATE : 2010-08-07 01:16:00
BROWSER : Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
ID : 2
IP : 95.108.244.252
USER : unknownABCD1234
DATE : 2010-08-07 01:16:04
BROWSER : Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
nel momento che se non c'è la sessione aggiungo alla sessione $_SESSION['log'], quando poi vado a ricontrollare questo parametro con !isset($_SESSION['log'] (ammeno che la sessione non sia scaduta) dovrebbe esserci.
cioè in 4 secondi la sessione è scaduta? impossibile....
come mai tutto ciò?
detto questo, cosa ne pensate? si può migliorare? presenta possibili bug? così giusto a titolo di informazione...
saluti