Ankündigung

Einklappen
Keine Ankündigung bisher.

Besucherzähler

Einklappen

Neue Werbung 2019

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

  • Besucherzähler

    Hallo,
    ich habe mir einen Besucherzähler gebastelt. Aber irgendwo ist da der Hund drin begraben.
    Im Vergleich zu Google Analytics bekomme ich Werte die ca. 3-4 mal so hoch sind.
    Der Datenaustausch mit der Datenbank funktionieren einwandfrei.
    Würde mich freuen, wenn mir hier jemand weiter helfen könnte.
    Wo ist mein logik-fehler???
    Hier der Quelltext:

    PHP-Code:
    include("cgi-bin/zugriff.inc.php");
    $sql "select * from gaestezaehler"// Auslesen der gespeicherten Werte (funktioniert)
    $result mysql_query ($sql);
    while (
    $row =mysql_fetch_assoc($result)){
    $gastip "$row[gastip]";
    $zeitpunkt "$row[zeitpunkt]";
    $heute "$row[heute]";
    $gestern "$row[gestern]";
    $gesamt "$row[gesamt]";
    }
    $timestamp time();
    $jetztwert = ($timestamp/86400); // Umrechnung von Sekunden in Tage (heute)
    $jetztdat floor($jetztwert); // Datum als Zahlenwert ohne Nachkommastellen (heute)
    $letztwert = ($zeitpunkt/86400); // Umrechnung von Sekunden in Tage (letzter Eintrag)
    $letztdat floor($letztwert); // Datum als Zahlenwert ohne Nachkommastellen (letzter Eintrag)

    if ($jetztdat <> $letztdat){ // Uebertragen der Besucherzahl (bei Datumswechsel) auf gestern (funktioniert)
    $gestern $heute;
    $heute 0;
    }

    $ip $_SERVER["REMOTE_ADDR"]; // IP des Besuchers abfragen

    if ($ip <> $gastip){ // Besucher war auf dieser Seite (?)
    $heute $heute 1;
    $gesamt$gesamt 1;
    // Ueberschreiben der gespeicherten Werte
    $query mysql_query("UPDATE gaestezaehler SET gastip = '$ip', zeitpunkt = '$timestamp', heute = '$heute', gestern = '$gestern', gesamt = '$gesamt' WHERE id=1"); // (funktioniert)
    }else if(($timestamp $zeitpunkt)> 600){ // war der Besucher in den letzten 10 Minuten schon ein mal auf dieser Seite (?)
    $heute $heute 1;
    $gesamt$gesamt 1;
    // Ueberschreiben der gespeicherten Werte
    $query mysql_query("UPDATE gaestezaehler SET gastip = '$ip', zeitpunkt = '$timestamp', heute = '$heute', gestern = '$gestern', gesamt = '$gesamt' WHERE id=1"); // (funktioniert)


  • #2
    Google Analytics ist ein wenig komplexer und umfangreicher als dein Script. Wenn du das nachprogrammieren willst, ist das fast eine Lebensaufgabe. Wenn du den Aufwand nicht willst, dann musst du entweder mit ungenauen Ergebnissen leben oder einfach Google Analytics (oder vergleichbares) verwenden.

    Nur die IP zu prüfen ist jedenfalls vollkommen unzureichend. Es gibt User, die haben mehrere IPs, und es gibt User, die sich eine gemeinsame IP teilen.

    Kommentar


    • #3
      Ich würde das nicht nachprogrammieren wollen, sondern einfach piwik nutzen.
      Piwik Beschreibung bei Wikipedia.

      Kommentar


      • #4
        Es wäre nett, den Code in entsprechenden Code Tags zu posten.
        ein
        // Ueberschreiben der gespeicherten Werte
        halte ich für einen völlig verfehlten Ansatz, ein Speichern jeder PageImpression oder wenigstens jedes Besuchers macht Dir auf Dauer mehr Freude, tracken von Ajax calls ist sicher auch nicht zu verachten, wenn Du eine Seite hast, welche nur noch gegen eine RestFul Api arbeitet.
        Das verarbeiten der IP ist, wie schon erwähnt sehr suboptimal.
        ür fortgeschritten halte ich diese Fragestellung auch nicht.

        Kommentar


        • #5
          Danke für die Tipps, werde wohl doch einen Counter aus dem Internet einbauen.
          Hatte mir das Ganze wohl doch zu einfach vorgestellt.

          Kommentar


          • #6
            MOD: Verschoben von Fortgeschritten
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar

            Lädt...
            X