volker: + MySQL: Tabelle auswerten

Beitrag lesen

Hallo zusammen,

hallo martin,

//User auswerten
 $count_user = 0;
 $query = "SELECT ip FROM logs GROUP BY ip ORDER BY ip";
 $result = MYSQL_QUERY($query,$conn);
 while ($row = mysql_fetch_array ($result))
 {
 $count_user++;
 }

ich würde das zählen der datenbank überlassen, dann sparst du dir die while-schleife:
'SELECT COUNT(DISTINCT ip) FROM logs'

für die lösung deines eigentlichen problems fällt mir auf die schnelle nur eins ein: erweitere die log-tabelle um ein feld 'timestamp' des typs timestamp und prüfe vor dem eintragen, ob in der tabelle schon eine zeile mit der gleichen ip und einem timestamp der nicht älter als eine stunde ist, existiert. in dem fall wird nichts eingetragen. so in etwa:

//check ob neuer user
$ip = getenv('REMOTE_ADDR');
$now = time();
$query = "SELECT ip FROM logs WHERE ip=".$ip."AND ".$now." - unix_timestamp(timestamp) < 3600";
$result = MYSQL_QUERY($query,$conn);
if (!$result) {
  //neuer eintrag in log-datenbank
}

gruss aus berlin, volker