<?php
$mysqlhost="localhost";
$mysqluser="username";
$mysqlpasswd="passwort";
$mysqldbname="datenbank";
$link = @mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
if ($link == FALSE) {
echo "
[b]Leider kann keine Verbindung zur Datenbank hergestellt werden. Bitte versuchen Sie es später noch einmal.[/b]</p>\n";
exit();
}
mysql_select_db($mysqldbname);
// Wie lange soll IP als einmaliger Besucher gelten (in Minuten)?
$time_visits=120;
// Wie lange soll IP als aktiver Besucher gelten (in Minuten)?
$time_online=5;
// Name der Tabelle fuer die IPs
$db_name_ips='ip';
// Name der Tabelle fuer die Statistik selber
$db_name_values='counter';
// Loeschen
mysql_query("DELETE FROM $db_name_ips
WHERE last_action<".(time()-$time_visits*60));
$result=mysql_query("SELECT ip
FROM $db_name_ips
WHERE ip='{$_SERVER['REMOTE_ADDR']}'");
// Zeitstempel aktualisieren
if (mysql_num_rows($result)>0) {
mysql_query("UPDATE $db_name_ips
SET last_action=".time()."
WHERE ip='{$_SERVER['REMOTE_ADDR']}'");
}
// IP mit Zeitstempel eintragen
else {
mysql_query("INSERT INTO $db_name_ips (ip, last_action)
VALUES ('{$_SERVER['REMOTE_ADDR']}', ".time().")");
// Visits erhoehen
mysql_query("UPDATE $db_name_values
SET visits=visits+1");
// Neue Zahl maximaler gleichzeitiger Besucher speichern
$result=mysql_query("SELECT COUNT($db_name_ips.ip) AS c_ip,
$db_name_values.max_online_count
FROM $db_name_ips,
$db_name_values
WHERE $db_name_ips.last_action>=".(time()-$time_online*60)."
GROUP BY $db_name_values.max_online_count");
$data_counter=mysql_fetch_assoc($result);
if ($data_counter['c_ip']>$data_counter['max_online_count']) {
mysql_query("UPDATE $db_name_values
SET max_online_count={$data_counter['c_ip']},
max_online_time=".time());
}
$temp=$data_counter['c_ip'];
unset($data_counter);
}
// Hits erhoehen
/*
mysql_query("UPDATE $db_name_values
SET hits=hits+1");
*/
// Aktuelle Daten auslesen
$result=mysql_query("SELECT *
FROM $db_name_values");
$data_counter=mysql_fetch_assoc($result);
// Zahl Besucher online
$result=mysql_query("SELECT COUNT(ip)
FROM $db_name_ips
WHERE last_action>=".(time()-$time_online*60));
list($data_counter['online_count'])=mysql_fetch_row($result);
// Datum Formatieren
$tage = array("Sonntag","Montag","Dienstag","Mittwoch",
"Donnerstag","Freitag","Samstag");
$monate = array(1=>"Januar",
2=>"Februar",
3=>"M&rz",
4=>"April",
5=>"Mai",
6=>"Juni",
7=>"Juli",
8=>"August",
9=>"September",
10=>"Oktober",
11=>"November",
12=>"Dezember");
$tag = date("w", $data_counter['date_start']);
$tag2 = date("w", $data_counter['max_online_time']);
$monat = date("n", $data_counter['date_start']);
$monat2 = date("n", $data_counter['max_online_time']);
$tag_ausgabe = $tage[$tag2];
$monat_ausgabe = $monate[$monat2];
?>
<?php echo "Besucher insgesamt: "; echo $data_counter['visits']; ?>
<?php echo "Gerade online: "; echo $data_counter['online_count']; ?>