| Counter | |
|
Von: Rudi Fränkle am 17.12.2003 Die Seiten sind mit Frontpage erstellt, auf dem Server sind keine Servererweiterungen installiert. Danke im Voraus ![]() | |
|
Antwort 1 von JoSsiF ***** am 17.12.2003 Das wäre die beste Möglichkeit, um unabhängig vom Internet einen Counter zu betreiben. Die kostenlosen Counter im Internet laufen meist über irgendeinen anderen Server, auf dem die Zählerdaten gespeichert werden. Glaube das macht sich im Intranet wohl nicht so gut. greez ![]() JoSsiF | |
|
Antwort 2 von con\con am 17.12.2003 Ich habe ihn versteckt in der noch im lokalen Netzwerk befindlichen Seite eingebaut und er funktioniert einfach geradeaus. Die Funktionen sind absolut ausreichend und sogar die Unterdrückung gleicher IP`s auf einen bestimmten Zeitraum hinweg wurde unterdrückt (das bieten manche durch Werbung finanzierte Counter aus dem Netz nicht unbedingt ;-) ) Du mußt allerdings einen eigenen Webserver einrichten, um den Counter das erste mal auszuführen damit er die entsprechenden Log-Dateien erstellt.. Den Quelltext ansich habe ich später noch in eine hübsche verschachtelte Tabelle eingebaut in der Optik der von mri erstellten Webseite (damit der Chef was feines zu gucken hat ;-) ) so, nun der Quelltext: <?php // wie lange gilt wird eine ip nicht als neuer besucher gewertet (in minuten) $t_counter=120; // wie lange gilt besucher als online (in minuten) $t_user_online=5; // pfad zum besucherzaehler $p_counter='counter.log'; // pfad zur datei, die maximale zahl gleichzeitiger nutzer speichert $p_counter_max='counter_max.log'; // pfad zur datei, die die ips des besucherzaehlers speichert $p_ips_counter='ips_counter.log'; // pfad zur datei, die die ips der aktuell auf der seite befindlichen user speichert $p_ips_user_online='ips_user_online.log'; nicht vorhandene dateien erstellen wenn dateien vorhanden sind und skript einwandfrei laeuft, dann diese zeilen auskommentieren (// davor) if (!file_exists($p_counter)) { $fh=fopen($p_counter, 'w'); fwrite($fh, "0"); fclose($fh); } if (!file_exists($p_counter_max)) { $fh=fopen($p_counter_max, 'w'); fwrite($fh, time().'#0'); fclose($fh); } if (!file_exists($p_ips_counter)) { $fh=fopen($p_ips_counter, 'w'); fclose($fh); } if (!file_exists($p_ips_user_online)) { $fh=fopen($p_ips_user_online, 'w'); fclose($fh); } // daten einlesen $temp=file($p_counter); $counter=$temp[0]; $temp=file($p_counter_max); $counter_max=explode('#', $temp[0]); $ips_counter=file($p_ips_counter); $ips_user_online=file($p_ips_user_online); $ip=$_SERVER['REMOTE_ADDR']; // user online - noch gueltige ips raussuchen $i=0; $j=0; $ip_exists=0; while ($i < count($ips_user_online)) { $temp=explode('#', trim($ips_user_online[$i])); if (time() < $temp[0]+$t_user_online*60) { $ips[$j]=$ips_user_online[$i]; $j++; // wenn ip des aktuellen besuchers gefunden, dann vermerken if ($temp[1]==$ip) { $ip_exists=1; } } $i++; } // wenn aktuelle ip nicht gefunden wurde ($ip_exists==0) oder alle entsorgt wurden, dann diese hinzufuegen if (!isset($ips) && $ip_exists==1 || $ip_exists==0) { $ips[$i]=time().'#'.$ip; } // anzahl felder von $ips entspricht anzahl der user online $user_online=count($ips); // wenn aktuelle zahl besucher groesser als letztes maximum, dann ueberschreiben und neu einlesen if ($user_online>$counter_max[1]) { $fh=fopen($p_counter_max, 'w'); fwrite($fh, time().'#'.$user_online); fclose($fh); $temp=file($p_counter_max); $counter_max=explode('#', $temp[0]); } // die ips speichern $fh=fopen($p_ips_user_online, 'w'); fwrite($fh, join("\n", $ips)); fclose($fh); // besucherzaehler - noch gueltige ips raussuchen $i=0; $j=0; $ip_exists=0; while ($i < count($ips_counter)) { $temp=explode('#', trim($ips_counter[$i])); if (time() < $temp[0]+$t_counter*60) { $ips[$j]=$ips_counter[$i]; $j++; // wenn ip des aktuellen besuchers gefunden, dann vermerken if ($temp[1]==$ip) { $ip_exists=1; } } $i++; } // wenn aktuelle ip nicht gefunden wurde ($ip_exists==0) oder alle entsorgt wurden, dann diese hinzufuegen if (!isset($ips) && $ip_exists==1 || $ip_exists==0) { $ips[$i]=time().'#'.$ip; $counter++; $fh=fopen($p_counter, 'w'); fwrite($fh, $counter); fclose($fh); } // die ips speichern $fh=fopen($p_ips_counter, 'w'); fwrite($fh, join("\n", $ips)); fclose($fh); // ausgabe der besucherdaten echo ' Counterstatistik ' ;echo ' Anzahl Besucher insgesamt seit dem 03.11.2003: ' ; echo ''.$counter.' <br>';echo ' Anzahl momentaner Besucher: '; echo ''.$user_online.'<br>';echo ' maximale Besucheranzahl am '.date("d.m.Y", $counter_max[0]).':'; echo ' '.$counter_max[1].' <br>'; echo '<br><p align="center">IP-Adressen aller Besucher anzeigen: <a href="ips_counter.log" ><font color="#808080">Hier klicken</font></a> <br> IP-Adressen aller auf dieser Seite befindlichen Benutzer anzeigen: <a href="ips_user_online.log" ><font color="#808080">Hier klicken</font></a> </td>'; echo ' ';?> Die Ausgabe mußt du dir selbst hübsch zurecht machen ;-) Achja, nach dem ersten Druchlauf mußt du wie im Quelltext angegeben die Stellen die die LOG-Files erstellen auskommentieren! Zu guter Letzt: der Ersteller von selfPHP stellt den Quelltext für umsonst zur Verfügung, möchte aber, dass wenn dieser weiter gegeben wird im originalzustand weitergeleitet wird. Tjoa, das ist er jetzt auch bis auf 1-2 <br>-Tags in der Ausgabe ;-) con\con | |
|
Antwort 3 von con\con am 17.12.2003 Bitte als via PM bescheid [concon] ;-) con\con | |
|
Antwort 4 von Rudi Fränkle am 28.12.2003 Ich glaub, ich bin zu blöd dazu!! | |
|
Antwort 5 von concon ***** am 15.01.2004 con\con | |
| « zurück | Antworten |

