Animate Digits IP Tracking Counter 0.4.0 zählt nicht
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Animate Digits IP Tracking Counter 0.4.0 zählt nicht
Hallo,
ich habe bei mir den Animate Digits IP Tracking Counter 0.4.0 eingebaut, aber ich habe ihn bis jetzt nicht zum laufen gebracht. Die Konfiguration hat wunderbar geklappt, die Anzeige des Counters stimmt auch, im ACP lässt sich alles einstellen, nur er zählt nicht egal was ich im ACP einstelle. Weis jemand von euch, woran das liegen kann?
Gruß Helmut
ich habe bei mir den Animate Digits IP Tracking Counter 0.4.0 eingebaut, aber ich habe ihn bis jetzt nicht zum laufen gebracht. Die Konfiguration hat wunderbar geklappt, die Anzeige des Counters stimmt auch, im ACP lässt sich alles einstellen, nur er zählt nicht egal was ich im ACP einstelle. Weis jemand von euch, woran das liegen kann?
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Hallo,
nochmal nach oben schieb ......
Leider habe ich immer noch nicht die Ursache gefunden warum der Zähler nicht geht.
Vielleicht kann sich mal jemand den Zähler anschauen wo der Fehler liegen könnte?
[EDIT]
Hier ist die functions_counter.php welche die eigentliche Zählung vornehmen soll:
Es funktioniert alles, nur die eigentliche Zählung geht nicht. Das Problem steckt vermutlich bei der Funktion function is_new_visitor(), bin mir aber nicht sicher.
Gruß Helmut
nochmal nach oben schieb ......

Leider habe ich immer noch nicht die Ursache gefunden warum der Zähler nicht geht.

Vielleicht kann sich mal jemand den Zähler anschauen wo der Fehler liegen könnte?
[EDIT]
Hier ist die functions_counter.php welche die eigentliche Zählung vornehmen soll:
Code: Alles auswählen
class display_counter {
var $config = array();
function display_counter()
{
global $config, $phpbb_root_path;
$this->config['counter_digits_path'] = $phpbb_root_path . $config['counter_digits_path'];
$this->config['counter_digits_ani_path'] = $phpbb_root_path . $config['counter_digits_ani_path'];
$this->config['counter_digits_number'] = $config['counter_digits_number'];
$this->config['counter_digits_width'] = $config['counter_digits_width'];
$this->config['counter_digits_height'] = $config['counter_digits_height'];
$this->config['counter_block_ip'] = $config['counter_block_ip'];
$this->config['counter_block_time'] = $config['counter_block_time'];
$this->config['counter_ip_logfile'] = $phpbb_root_path . $config['counter_ip_logfile'];
}
function is_new_visitor()
{
$is_new = true;
$rows = @file($this->config['counter_ip_logfile']);
$this_time = time();
$ip = getenv('REMOTE_ADDR');
$reload_dat = fopen($this->config['counter_ip_logfile'], 'wb');
flock($reload_dat, 2);
for ($i = 0; $i < sizeof($rows); $i++)
{
list($time_stamp, $ip_addr) = split("\|", $rows[$i]);
if ($this_time < ($time_stamp + $this->config['counter_block_time']))
{
if (chop($ip_addr) == $ip)
{
$is_new = false;
}
else
{
fwrite($reload_dat, "$time_stamp|$ip_addr");
}
}
}
fwrite($reload_dat, "$this_time|$ip\n");
flock($reload_dat, 3);
fclose($reload_dat);
return $is_new;
}
function read_counter()
{
global $config, $phpbb_root_path;
$update = false;
$this->counter = $config['counter_hits'];
if ($this->config['counter_block_ip'])
{
if ($this->is_new_visitor())
{
$this->counter++;
$update = true;
}
}
else
{
$this->counter++;
$update = true;
}
if ($update)
{
set_config('counter_hits', $this->counter, true);
}
return $this->counter;
}
function create_output()
{
$this->read_counter();
$this->counter = sprintf("%0" . "" . $this->config['counter_digits_number'] . "" . "d", $this->counter);
$ani_digits = sprintf("%0" . "" . $this->config['counter_digits_number'] . "" . "d", $this->counter + 1);
$html_output = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr align=\"center\">\n";
for ($i=0; $i < strlen($this->counter); $i++)
{
if (substr("$this->counter", $i, 1) == substr("$ani_digits", $i, 1))
{
$digit_pos = substr("$this->counter", $i, 1);
$html_output .= "<td class=\"counter\"><img src=\"" . $this->config['counter_digits_path'] . "/$digit_pos.gif\"";
}
else
{
$digit_pos = substr("$ani_digits", $i, 1);
$html_output .= "<td class=\"counter\"><img src=\"" . $this->config['counter_digits_ani_path'] . "/$digit_pos.gif\"";
}
$html_output .= " width=\"" . $this->config['counter_digits_width']. "\" height=\"" . $this->config['counter_digits_height'] . "\" alt=\"\" /></td>\n";
}
$html_output .= "</tr></table>\n";
return $html_output;
}
}
Gruß Helmut
Ich bin nicht ganz dicht.... na und.
hmmm...
so wie ich das sehe hast du ein phpbb2 board und ein phpbb3 beta mod eingebaut....
das kann nicht funktionieren....
so wie ich das sehe hast du ein phpbb2 board und ein phpbb3 beta mod eingebaut....
das kann nicht funktionieren....
[FINAL] Impressum Dinseprinz 0.1.8 http://www.phpbb.de/community/viewtopic ... 52&start=0
[Final] Linkverzeichnis Mod Phpbb Annuaire v0.2.1 http://www.phpbb.de/community/viewtopic ... 17&start=0
[Final] Linkverzeichnis Mod Phpbb Annuaire v0.2.1 http://www.phpbb.de/community/viewtopic ... 17&start=0
Hallo ups,
Helmut baut sich grad das 3er Board auf, von daher passt es schon
Hallo Helmut,
die möglichen Fehlerquellen sind da wohl ziemlich komplex.
Falls sich keine Lösung finden sollte, nimm den CHCounter.
Tausendfach bewährt und schon lange keine Beta mehr
Ab hier lesen
lg
4seven
Helmut baut sich grad das 3er Board auf, von daher passt es schon

Hallo Helmut,
die möglichen Fehlerquellen sind da wohl ziemlich komplex.
Falls sich keine Lösung finden sollte, nimm den CHCounter.
Tausendfach bewährt und schon lange keine Beta mehr

Ab hier lesen
lg
4seven
Hallo 4seven,
die Fehlerquellen sind nicht so wild, so wie es aussieht, wird nur der Zählerstand nicht in der phpbb3_config aktuallisiert, die Ausgabe usw. geht ja Fehlerfrei. Der Zähler basiert auf dem Animated Counter 1.1, den du hier runterladen kannst. Hier ist die acounter.php:
Dieser Code funktioniert, es werden die Besucher/Klicks gezählt. Der wesentliche Unterschied im Code liegt nur darin, dass hier der Zählerstand in eine Datei geschrieben wird, die Erfassung der Seitenaufrufe ist praktisch gleich.
Ich werde mir mal den CHCounter anschauen. Die meisten dieser Counter wollen eine externe Verbindung zu "ihrem" Server aufbauen, sowas gefällt mir nicht so gut, da es dann immer mal zu Problemen kommen kann, wenn der Zugriff lange dauert.
@ups
Stimmt, meine aktuelle Homepage basiert auf phpBB2, aber wie 4seven schon sagte, ich bin gerade dabei, die HP auf das neue Forum umzustellen. Daher ist die neue Seite auch noch nicht offiziell für jeden Zugänglich, obwohl die Test Homepage schon Online ist.
Gruß Helmut
P.S. 4seven, ich schicke dir mal ne PN, dann kannst dir die neue Seite mal anschauen.
die Fehlerquellen sind nicht so wild, so wie es aussieht, wird nur der Zählerstand nicht in der phpbb3_config aktuallisiert, die Ausgabe usw. geht ja Fehlerfrei. Der Zähler basiert auf dem Animated Counter 1.1, den du hier runterladen kannst. Hier ist die acounter.php:
Code: Alles auswählen
class acounter {
var $config = array();
function acounter () {
/* URL to the digitset */
$this->config['img'] = "http://localhost/~counters/acountphp/digits/";
/* URL to the animated digitset */
$this->config['animated_img'] = "http://localhost/~counters/acountphp/digits_ani/";
/* How many digits to show */
$this->config['pad'] = 6;
/* digit width and height */
$this->config['width'] = 16;
$this->config['height'] = 22;
/* ip blocking (true/false) */
$this->config['block_ip'] = false;
/* path to ip logfiles */
$this->config['logfile'] = "./ip.txt";
/* timeout (minutes) */
$this->config['block_time'] = 15;
}
function is_new_visitor() {
$is_new = true;
$rows = @file($this->config['logfile']);
$this_time = time();
$ip = getenv("REMOTE_ADDR");
$reload_dat = fopen($this->config['logfile'],"wb");
flock($reload_dat, 2);
for ($i=0; $i<sizeof($rows); $i++) {
list($time_stamp,$ip_addr) = split("\|",$rows[$i]);
if ($this_time < ($time_stamp+$this->config['block_time'])) {
if (chop($ip_addr) == $ip) {
$is_new = false;
} else {
fwrite($reload_dat,"$time_stamp|$ip_addr");
}
}
}
fwrite($reload_dat,"$this_time|$ip\n");
flock($reload_dat, 3);
fclose($reload_dat);
return $is_new;
}
function read_counter_file($page) {
$update = false;
if (!file_exists("./pages/$page.txt")) {
$count_dat = fopen("./pages/$page.txt","w+");
$this->counter = 1;
fwrite($count_dat,$this->counter);
fclose($count_dat);
} else {
$fp = fopen("./pages/$page.txt", "r+");
flock($fp, 2);
$this->counter = fgets($fp, 4096);
flock($fp, 3);
fclose($fp);
if ($this->config['block_ip']) {
if ($this->is_new_visitor()) {
$this->counter++;
$update = true;
}
} else {
$this->counter++;
$update = true;
}
if ($update) {
$fp = fopen("./pages/$page.txt", "r+");
flock($fp, 2);
rewind($fp);
fwrite($fp, $this->counter);
flock($fp, 3);
fclose($fp);
}
}
return $this->counter;
}
function create_output($page='') {
if (empty($page)) {
$page = "counter";
}
$this->read_counter_file($page);
$this->counter = sprintf("%0"."".$this->config['pad'].""."d",$this->counter);
$ani_digits = sprintf("%0"."".$this->config['pad'].""."d",$this->counter+1);
$html_output = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr align=\"center\">\n";
for ($i=0; $i<strlen($this->counter); $i++) {
if (substr("$this->counter",$i,1) == substr("$ani_digits",$i,1)) {
$digit_pos = substr("$this->counter",$i,1);
$html_output .= "<td><img src=\"".$this->config['img']."$digit_pos.gif\"";
} else {
$digit_pos = substr("$ani_digits",$i,1);
$html_output .= "<td><img src=\"".$this->config['animated_img']."$digit_pos.gif\"";
}
$html_output .= " width=\"".$this->config['width']."\" height=\"".$this->config['height']."\"></td>\n";
}
$html_output .= "</tr></table>\n";
return $html_output;
}
}
Ich werde mir mal den CHCounter anschauen. Die meisten dieser Counter wollen eine externe Verbindung zu "ihrem" Server aufbauen, sowas gefällt mir nicht so gut, da es dann immer mal zu Problemen kommen kann, wenn der Zugriff lange dauert.
@ups
Stimmt, meine aktuelle Homepage basiert auf phpBB2, aber wie 4seven schon sagte, ich bin gerade dabei, die HP auf das neue Forum umzustellen. Daher ist die neue Seite auch noch nicht offiziell für jeden Zugänglich, obwohl die Test Homepage schon Online ist.
Gruß Helmut

P.S. 4seven, ich schicke dir mal ne PN, dann kannst dir die neue Seite mal anschauen.
Ich bin nicht ganz dicht.... na und.
sorry, das wußte ich nicht...ich ging in der annahme..Helmut hat geschrieben:@ups
Stimmt, meine aktuelle Homepage basiert auf phpBB2, aber wie 4seven schon sagte, ich bin gerade dabei, die HP auf das neue Forum umzustellen.
nunja, irren ist menschlich

ups
[FINAL] Impressum Dinseprinz 0.1.8 http://www.phpbb.de/community/viewtopic ... 52&start=0
[Final] Linkverzeichnis Mod Phpbb Annuaire v0.2.1 http://www.phpbb.de/community/viewtopic ... 17&start=0
[Final] Linkverzeichnis Mod Phpbb Annuaire v0.2.1 http://www.phpbb.de/community/viewtopic ... 17&start=0
Tut der CHCounter garantiert nicht, da ich den Counter schon seit Jahren eingebaut und vollständig analysiert habe. Er läuft 100% local. Außerdem sind die (Weiter)Betreiber des Counters klasse drauf und Open-Source-Freunde, die "um der Sache Willen" das vom Original-Autor stillgelegte Project mit viel Einsatz weiterpflegenHelmut hat geschrieben: Die meisten dieser Counter wollen eine externe Verbindung zu "ihrem" Server aufbauen, sowas gefällt mir nicht so gut, da es dann immer mal zu Problemen kommen kann, wenn der Zugriff lange dauert.

Und, hab Dank für die Einladung

lg
4seven
Hallo 4seven,
ich habe mir den Counter ausgesucht, weil er sehr kompakt und überschaubar ist. Ich habe jetzt noch nicht weiter gesucht warum er nicht zählt, gibt eigentlich nur zwei Punkte die dafür verantwortlich sein können. Du kannst dir ja mal den Counter testweise einbauen und schauen ob er bei dir geht.
Den CHCounter habe ich nocht nicht getestet, werde ihn aber auch mal testweise einbauen.
Gruß Helmut
ich habe mir den Counter ausgesucht, weil er sehr kompakt und überschaubar ist. Ich habe jetzt noch nicht weiter gesucht warum er nicht zählt, gibt eigentlich nur zwei Punkte die dafür verantwortlich sein können. Du kannst dir ja mal den Counter testweise einbauen und schauen ob er bei dir geht.
Den CHCounter habe ich nocht nicht getestet, werde ihn aber auch mal testweise einbauen.
Gruß Helmut

Ich bin nicht ganz dicht.... na und.