Besucher am Tag?

2Pac

Erfahrenes Mitglied
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:
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";
  }
 }
}
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 :D)

MfG ICH halt ;D
 
Hallo!

Es wäre schön, wenn Du nur das Wesentliche posten könntest und dazu sagen könntest, was nicht funktioniert. 3 Seiten Quelltext hinwerfen und sagen, dass irgend etwas nicht stimmt schickt sich nicht.

Gruß, snuu
 
ja em wenn ichs wüsste würd ichs machen aber es kommt keine fehlermeldung aber es geht auch nicht wirklich. Er schreibt ja nichtmal das was ich geschrieben hab...(also der echo befehl jetzt der ausgibt heute:Besucheranzahl)
 
Ja und was passiert denn bitte genau, wenn du das Script ausführst?
Ich hoffe, es liegt nicht daran, dass du deinen SCRIPT-Tag
PHP:
<script language="php">
am Ende des Scripts nicht schließt
PHP:
also so: </script>
oder?! :-)
 
Zurück