Hallo Leute ich würde gerne nicht nur die gesamtbesucher sondern auch die Besucher an einem Tag zählen und auch festhalten...
dazu habe ich mir folgendes ausgedacht:
hmmm aber irgendwas klappt dort nicht so ganz
woran könnte das liegen? (Bitte nicht den Quelltext wegen der Struktur kritisieren sondern nur sagen was falsch dran ist was nicht geht etc. denn von der Form her wird er noch bearbeitet später is also sozusagen ne Alphaversion )
MfG ICH halt ;D
dazu habe ich mir folgendes ausgedacht:
PHP:
<script language="php">
// die Datei, in die geschrieben werden soll
$datei = "useronline.dat";
// erstelle Datei, falls sie nicht existiert
if (!file_exists($datei)) fclose(fopen($datei, "w"));
// Einlesen der Datei in ein Array (eine Zeile pro Arrayfeld)
$users = file($datei);
$gefunden = false;
// Anzahl der Einträge ermitteln
$anzahl_users = count($users);
// Datei zum Schreiben öffnen
$fp = fopen($datei, "w");
// Durchlaufen der Einträge
foreach($users as $user)
{
// in ein Array aufsplitten
$user = explode("|", $user);
// wenn der Eintrag älter als 5 Minuten (=300 Sekunden) ist...
if ($user[1]+300 < time())
{
// Anzahl der User um 1 verringern
$anzahl_users--;
// nächsten Schleifendurchlauf starten
continue;
}
// wenn der User schon eingetragen ist, dann...
elseif ($user[0] == $_SERVER['REMOTE_ADDR'])
{
// ...aktuelle Zeit setzen
$user[1] = time();
// ...bestätigen, dass kein neuer Eintrag erforderlich ist
$gefunden = true;
}
// wieder in Zeichenkette umwandeln und Zeilenumbruch anfügen
$user = trim(implode("|", $user))."\n";
// in Datei schreiben
fputs($fp, $user);
}
// wenn der User noch nicht eingetragen ist...
if (!$gefunden)
{
// neuen Eintrag direkt in die Datei schreiben
fputs($fp, $_SERVER['REMOTE_ADDR']."|".time()."\n");
// Anzahl der User um 1 erhöhen
$var = "$tag.$monat.$jahr";
$anzahl_users++;
$DatabaseName = "daten";
$DbHostName = "daten";
$DbUserName = "daten";
$DbPassWord = "daten";
$db = mysql_connect("$DbHostName", "$DbUserName", "$DbPassWord");
$res = mysql_db_query("$DatabaseName", "select datum,user FROM counter where datum='$var'");
$result = mysql_db_query("$DatabaseName", "select datum,user FROM counter");
$num = mysql_num_rows($res);
if ($num == 0)
{
$user = 1;
$sqlab = "insert counter";
$sqlab .= "(datum, user) values";
$sqlab .= "('$var', '$user')";
mysql_db_query("$DatabaseName", $sqlab);
}
if ($num != 0)
{
$sqlab = "update counter set user = user + 1";
mysql_db_query("$DatabaseName", $sqlab);
while($data = mysql_fetch_row($result))
{
$user = $data[1];
echo "heute:$user";
}
}
}
else
{
$var = "$tag.$monat.$jahr";
$DatabaseName = "daten";
$DbHostName = "daten";
$DbUserName = "daten";
$DbPassWord = "daten";
$db = mysql_connect("$DbHostName", "$DbUserName", "$DbPassWord");
$res = mysql_db_query("$DatabaseName", "select datum,user FROM counter where datum='$var'");
$num = mysql_num_rows($res);
if ($num == 0)
{
echo "heute:0";
}
else
{
while($data = mysql_fetch_row($result))
{
$user = $data[1];
echo "heute:$user";
}
}
}
woran könnte das liegen? (Bitte nicht den Quelltext wegen der Struktur kritisieren sondern nur sagen was falsch dran ist was nicht geht etc. denn von der Form her wird er noch bearbeitet später is also sozusagen ne Alphaversion )
MfG ICH halt ;D