URL: https://www.overclockers.at/coding-stuff/zugriffszaehler_erweitern_151788/page_1 - zur Vollversion wechseln!
Mahlzeit!
Ich habe einen Counter in eine Homepage implementiert, welcher sich auch die IP-Adressen merkt und man nur jeden Tag 1x registriert wird.
Jetzt hab ich mir natürlich auch ein Logfile in der Datenbank angelegt und - siehe da - es scheinen ziemlich viele zugriffe von einem User in kurzer Zeit zu kommen, aber seht selbst:
Code:ip_addr udatum 80.121.33.144 1130577182 195.3.113.151 1130579000 195.3.113.149 1130579191 195.3.113.145 1130579212 195.3.113.146 1130579321 213.47.101.94 1130579408 195.3.113.150 1130580650 195.3.113.148 1130580691 195.3.113.159 1130580694 195.3.113.144 1130580736
Code: PHP// Zuerst alle abgelaufenen Zeitstempel löschen $zeitstempel = time() - 86400; $sql = "DELETE FROM counter_ip WHERE udatum < '".$zeitstempel."'"; mysql_query($sql); // Wenn der Tag ein neuer ist, Den Heute nach Gestern verschieben und Heute auf 0 setzen $sql = "SELECT heute_date, heute FROM counter"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { $datum_db_heute = $row['heute_date']; $counter_db_heute = $row['heute']; } if($datum_db_heute != date("d")) { // daten unterschiedlich, heute nach gestern verschieben und heute auf 0 setzen $sql = "UPDATE counter SET gestern = '".$counter_db_heute."', heute = '0', heute_date = '".date("d")."'"; mysql_query($sql); } // Daten des Aufrufenden auslesen (Kontrolle ob er schon mal da war) $sql = "SELECT * FROM counter_ip WHERE ip_addr = '".$_SERVER['REMOTE_ADDR']."'"; $result = mysql_query($sql); if(mysql_num_rows($result) == 0) { // ADRESSE NOCH NICHT IN DER DB VORHANDEN // -> Counter inkrementieren und IP-ADDR + Zeitstempel eintragen increase_counter($_SERVER['REMOTE_ADDR'], time()); } $sql = "SELECT gesamt, heute, gestern FROM counter"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { $counter_db_gesamt = $row['gesamt']; $counter_db_heute = $row['heute']; $counter_db_gestern = $row['gestern']; } // Hier dann Ausgabe der 3 Variablen Formatiert im Script
Code: PHPfunction increase_counter($user_ip, $actual_date) { $sql = "SELECT gesamt, heute FROM counter"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { $gesamt = $row['gesamt']; $heute = $row['heute']; } $gesamt = $gesamt + 1; $heute = $heute + 1; $sql = "UPDATE counter SET gesamt = '".$gesamt."', heute = '".$heute."'"; mysql_query($sql); $sql = "INSERT INTO counter_ip (ip_addr, udatum) VALUES ('".$user_ip."', '".$actual_date."')"; mysql_query($sql); }
Dir ist schon klar dass sich die IP auch waehrend einer Session aendern kann? Trifft vor allem fuer AOL-User zu.
Im Prinzip kannst du nur, wenn der User permanente Cookies akzeptiert, ein aussagekraeftiges Tracking machen (darum surf ich immer ohne :-) ), du hast halt Streuung bei Clients die es nicht annehmen, nur Session Cookies annehmen oder sie nicht unterstuetzen (was im Endeffekt alles aufs selbe kommt).
Aber im Prinzip gilt immer: du darfst keinen Daten des Users wirklich vertrauen. Agent, Cookies, sind alles Dinge die ein User potentiell aendern kann. IP nicht willkuerlich, aber siehe AOL oben. Im Endeffekt wirst immer Streuung drin haben von leuten die sich nicht tracken lassen wollen oder von Gateways/Firewalls die bestimmte Dinge nicht durchlassen (Cookies).
Zitat von RektalDir ist schon klar dass sich die IP auch waehrend einer Session aendern kann? Trifft vor allem fuer AOL-User zu.
Im Prinzip kannst du nur, wenn der User permanente Cookies akzeptiert, ein aussagekraeftiges Tracking machen (darum surf ich immer ohne :-) ), du hast halt Streuung bei Clients die es nicht annehmen, nur Session Cookies annehmen oder sie nicht unterstuetzen (was im Endeffekt alles aufs selbe kommt).
Aber im Prinzip gilt immer: du darfst keinen Daten des Users wirklich vertrauen. Agent, Cookies, sind alles Dinge die ein User potentiell aendern kann. IP nicht willkuerlich, aber siehe AOL oben. Im Endeffekt wirst immer Streuung drin haben von leuten die sich nicht tracken lassen wollen oder von Gateways/Firewalls die bestimmte Dinge nicht durchlassen (Cookies).

Professionelle Tracker (was fuer ein Ausdruck ...) setzen die Zahlen nicht 1:1 um. Ausserdem gibt es ja auch verschiedene Zahlen (Visits, Session, PIs, blabla). Meistens sind Unique Visits die wichtigsten Zahlen.
Wenn du die Cookies von der selben Domain setzt wo du den Content hast, bist aber mal auf der besseren Seite als die Otto-Normal Tracking-Betreiber. Diese sind ja meistens 3rd Party Cookies die immer mehr geblockt werden.
195.3.113.x ist der proxy-cluster von AON afaik.
hab dasselbe problem und ursprünglich versucht auch den referer zu vergleichen, bringt aber wenig weil halt doch sehr viele leute mit dem gleichen browser unterwegs sind.
schlussendlich hab ich mich einfach damit abgefunden das einige doppelt gezählt werden.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026