Eine kleine (einfache) Frage am Rande ;)!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Eine kleine (einfache) Frage am Rande ;)!

    Hallo Leute!

    Ich habe da mal eine einfache Frage zu Countern. Das Prinzip eines einfachen Counters ist klar, leider steht mir für die Umsetzung keine Datenbank zur Verfügung, dass muss also Filebased laufen. Hier mal ein kleines Beispiel, wie das später mal aussehen soll:

    <?php
    // (1): Die Datei mit den Daten wir
    // geoeffnet, ausgelesen und vorerst wieder
    // geschlossen.
    $filename = "counter.data";
    $datafile = @fopen($filename , "r");
    if ($datafile <=0)
    {
    echo "Datenfile nicht gefunden oder kaputt!";
    exit;
    }
    else
    {
    $content = fgets($datafile, "12");
    fclose($datafile);
    }
    // (2): Die ausgelesene Zahl wird um 1 er-
    // hoeht und ausgegeben.
    ++$content;
    echo $content;

    // (3): Die Datei wird abermals geöffnet
    // und die Daten mit den neuen überschrieben
    $datafile = @fopen($filename , "w");
    flock($datafile, "2");
    fputs($datafile, $content );
    flock($datafile, "3");
    fclose($datafile);
    ?>

    Diesen Auszug habe ich aus einem Script - Archiv. Gleich dazu wird die Warnung genannt, der Counter würde nur bei Seiten bis zu Besucherzahlen von 2000 Besuchern/Tag vernünftig laufen?! Kann mir einer sagen wieso?! Was kann denn schlimmsten Falls passieren?!

    Die Gefahr würde doch darin liegen, dass wenn das Counterscript von 2 Besuchern gleichzeitig aufgerufen wird, einer der beiden nicht mitgezählt wird, oder? Die Counterdatei selbst ist doch während des Schreibens mit Flock gesichert und kann daher nicht zerstört werden oder falsche Werte annehmen (in Form von Nullen zu viel o.ä.)?!

    Danke für eure Hilfen und Erfahrungen!

    Mfg,
    Jan Stanetzki!

  • #2
    also mit den 2000 Besuchern hat das meiner meinung nach nichts zu tun! auf 24 Stunden gesehen, hättest du alle 44 Sekunden einen Hit. Auf 8 Stunden alle 14 Sekunden.

    Könnte mir höchstens vorstellen, daß eventuell probleme auftreten, wenn in kurzer Zeit zuviele Leute kommen!

    gruss

    Kommentar


    • #3
      Gut, ok - Bloss, soweit war ich auch schon. Die Frage war mehr so gemeint, was dann passieren würde? Würden Seitenaufrufe nicht gezählt werden oder kann es passieren, dass sich 2 Seitenaufrufe beim Schreibvorgang beeinflussen und dadurch die Besucherzahl einen vollkommen falschen Wert annimmt (zum Beispiel Nullen am Ende der Zahl zu viel, etc.)?!

      Ist durch den Befehl Flock die Datei für jegliche Zugriffe (bei anderen Seitenaufrufen) gesperrt, so dass tatsächlich nur einmal zur selben Zeit in die Datei geschrieben werden kann?!

      Danke,
      Jan Stanetzki

      Kommentar

      Lädt...
      X