Ok filippo.toso, grazie ai tuoi suggerimenti ho migliorato lo script in questo modo:

Codice PHP:
<?php
session_start
();
$db_host = ...;
$db_user = ...;
$db_password = ...;
$db_name = ...;
$dbms mysql_connect($db_host$db_user$db_password) or die ("Impossibile connettersi al server MySql!\n");
$db mysql_select_db($db_name$dbms) or die ("Impossibile aprire il database db_name!\n");
if (!
session_is_registered("visitor")) {
  
$visitor session_id();
  
session_register("visitor");
  
mysql_open($dbms$db);
  
# ricava tutte le informazioni della visita
  
$host_remoto mysql_real_escape_string(gethostbyaddr($_SERVER['REMOTE_HOST']));
  
$ip_remoto mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
  
$http_referer mysql_real_escape_string($_SERVER['HTTP_REFERER']);
  
$ip_number sprintf("%u"ip2long($ip_remoto));
  
$query "SELECT COUNTRY_NAME FROM `iptocountry` WHERE IP_FROM <= $ip_number and IP_TO >= $ip_number";
  
$result mysql_query($query) or die (mysql_error());
  
$row mysql_fetch_row($result);
  
$country $row[0];
  
$language mysql_real_escape_string($_SERVER['HTTP_ACCEPT_LANGUAGE']);
  
$browser mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
  
$os mysql_real_escape_string($_SERVER['OS']);
  
$moment date("Y-m-d H:i:s");
  
$visit "INSERT INTO visits (remote_host, remote_ip, http_referer, country, language, browser, os, moment)
            VALUES ('
$host_remoto', '$ip_remoto', '$http_referer', '$country', '$language', '$browser', '$os', '$moment')";
  
mysql_query($visit) or die (mysql_error());
  
# visualizza visite uniche
  
$query "SELECT COUNT(*) FROM visits";
  
$result mysql_query($query) or die (mysql_error());
  
$row mysql_fetch_row($result);
  echo 
$row[0]." visite";
  
mysql_close($dbms);
}
?>
il problema sorge quando richiamo la stessa pagina impostando i parametri via GET: mi aggiunge una nuova visita!