hier ist das Modul, wie es bei mir funktioniert. Es zeigt die Benutzer online, die Anzahl der Seitenaufrufe im aktuellen+letzten Monat+seit Maerz 2004 (da ging die neue Version online):
Code: Alles auswählen
<?
# Zeit in Sekunden bis neu gezählt wird
$online = "120";
# Die Datei in der die IP und zeit gespeichert werden
$datei = "useronline.dat";
$zeit = time();
$fp = fopen($datei, "r");
$daten = "";
$count = "1";
$online = $zeit - $online;
while($zeilen = fgets($fp, 1000)){
$zeilen = chop($zeilen);
$inhalt = explode("|", $zeilen);
if($inhalt[0] == $REMOTE_ADDR || $inhalt[1] < $online || $inhalt[0] == "")
continue;
$daten = "$inhalt[0]|$inhalt[1]\n";
$count++;
}
fclose($fp);
$daten .= "$REMOTE_ADDR|$zeit\n";
$fp = fopen($datei, "w");
flock($fp,1);
fwrite($fp, $daten);
flock($fp,3);
fclose($fp);
if ($count=="1") {
echo "<span class=\"small\"> $count Besucher ist online</span><br>";
} else {
echo "<span class=\"small\"> $count Besucher sind online</span><br>";
}
//aktueller Monat
$sql2 = 'SELECT
visited
FROM
'.$cfg['tab']['cat_art'].' AS A,
'.$cfg['tab']['stat'].' AS B
WHERE
A.idcatart = B.idcatart AND
A.idcatart = '.$idcatart.' AND
B.idlang = '.$lang;
$db->query($sql2);
if ($db->next_record()) {
echo '<span class="small"> '.$db->f('visited').' Seitenaufrufe in diesem Monat</span><br>';
}
//Letzter Monat
$year = date("Y");
$month = date("m");
if ($month == 1)
{
$month = 12;
$year = $year -1;
} else {
$month = $month -1;
}
$yearmonth = sprintf("%04d%02d",$year,$month);
$sql3='SELECT
C.visited AS archived
FROM
'.$cfg['tab']['cat_art'].' AS A,
'.$cfg['tab']['stat_archive'].' AS C
WHERE
A.idcatart = C.idcatart AND
C.idcatart = '.$idcatart.' AND
C.idlang = '.$lang.' AND
C.archived = '.$yearmonth;
$db->query($sql3);
if ($db->next_record()) {
echo '<span class="small"> '.$db->f('archived').' Seitenaufrufe im letzten Monat</span><br>';
}
//Gesamtaufrufe aktuelle Seite
$sql = 'SELECT
visited
FROM
'.$cfg['tab']['cat_art'].' AS A,
'.$cfg['tab']['stat'].' AS B
WHERE
A.idcatart = B.idcatart AND
A.idcatart = '.$idcatart.' AND
B.idlang = '.$lang;
$db->query($sql);
if ($db->next_record()) {
$hits = $db->f('visited');
}
$sql4 = 'SELECT
sum(C.visited) AS archived
FROM
'.$cfg['tab']['cat_art'].' AS A,
'.$cfg['tab']['stat_archive'].' AS C
WHERE
A.idcatart = C.idcatart AND
C.idcatart = '.$idcatart.' AND
C.idlang = '.$lang;
$db->query($sql4);
if ($db->next_record()) {
$hits = $hits + $db->f('archived');
}
echo '<span class="small"> '.$hits.' Seitenaufrufe seit März 2004.</span><br>';
?>

Gruss
Christa