Andreas: Counter

Hallo,
habe eine ip.txt mit z.B. folgendem Inhalt:
1098212191|127.XX.XX.XX
1098210098|85.XX.XX.XXX
...
Jetzt möchte ich mit jedem Besucher die Datei in PHP öffnen, und wenn der Besucher innerhalb X Sekunden nicht schon mal da war, den Zähler in count.txt erhöhen. Die ip.txt wird ständig aktualisiert, und es sind nur die Besucher der letzten X Sekunden (8h) darin.

Das klappt alles schon. Jetzt will ich aber zusätzlich wissen wieviel Besucher heute schon da waren, gestern insgesamt hier waren und wann wieviel Besucher am meisten da waren.

Wie geh ich da vor? Wie kann ich aus der Unix-Time Angabe ermitteln wer heute und wer gestern da war?
Habe einfach kein Konzept.

Andreas

  1. Hallo,

    wenn nur die Besucher der letzten 8 Std. drin sind, macht das Zählen heutiger und gestriger Besucher wenig Sinn. Aber gut, morgens um 4.00 Uhr sind ja noch die Besucher seit gestern 20.00 Uhr drin. Also:

    habe eine ip.txt mit z.B. folgendem Inhalt:
    1098212191|127.XX.XX.XX
    1098210098|85.XX.XX.XXX

    Das klappt alles schon. Jetzt will ich aber zusätzlich wissen wieviel Besucher heute schon da waren, gestern insgesamt hier waren ...

    $heute   = date( "d.m.Y", time())   // 19.10.2004
    $gestern = date( "d.m.Y", time() -(24 *60 *60))   // 19.10.2004 minus 24 Std * 60 min * 60 sec

    Prinzip: Greife dir in einer Schleife Zeile für Zeile und packe die Zeit in $zeit, etwa so:

    $count_heute = 0;
    $count_gestern = 0;
    while
      ...
      if ( date( "d.m.Y", $zeit ) == $heute ) $count_heute++;
      if ( date( "d.m.Y", $zeit ) == $gestern) $count_gestern++;
    endwhile

    Lieben Gruß, Kalle

    1. Hallo,
      danke für die Antwortungen.
      glaube auch dass ich einfach das ganze tabellen-gestützt mache, statt tyt-Dateien.
      Mein Problem ist einfach wie bekomme ich es hin dass morgen das heute zu gestern wird.*lol*
      Würde die Liste ständig erweitert hätt ich ja immer alle Einträge zur Verfügung, aber das will ich ja vermeiden.

      $count_heute = 0;
      $count_gestern = 0;
      while
        ...
        if ( date( "d.m.Y", $zeit ) == $heute ) $count_heute++;
        if ( date( "d.m.Y", $zeit ) == $gestern) $count_gestern++;
      endwhile

      ganz so einfach wirds wohl nicht werden, aber danke.

      Gruß Andreas

  2. Moin!

    Das klappt alles schon. Jetzt will ich aber zusätzlich wissen wieviel Besucher heute schon da waren, gestern insgesamt hier waren und wann wieviel Besucher am meisten da waren.

    Hm. So langsam wir es komplex und somit vieleicht doch eine Aufgabe für eine Datenbank.

    Wie geh ich da vor? Wie kann ich aus der Unix-Time Angabe ermitteln wer heute und wer gestern da war?

    Erst Funktionsumfang planen und dann damit anfangen verschiedene Lösungsmöglichkeiten hinsichtlich voraussichtlichen Aufwand, Performance etc. untersuchen.

    Habe einfach kein Konzept.

    Vielleicht solltest genau damit anfangen. Lösungsmöglichkeiten bietet Dir nach Funktionstypen geordnet
    http://www.php.net/manual/de/ref.datetime.php
    Natürlich auch http://www.selfphp.info/funktionsreferenz/index.php

    Für MySQL: http://www.mysql.de/search/?q=Zeit

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
  3. Hello,

    das ist in der Atomphysik.
    Wenn man Ereignisse registriert, aber nicht weiß, welche Eigenschaft man später für die Quantisierung benötigt, muss man alle Eigenschaften so genau wie es geht registrieren.

    Das kostet natürlich Datensätze. Kumulaton ist da nicht möglich.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau