Thomas P
17.10.2002, 14:32
Hallo allerseits,
wie vielleicht der ein oder andere mitbekommen hat, war ich einige Zeit auf
der Suche nach einem fertigen PHP/MySQL counter, der mir die absoluten und
täglichen Hits (pageviews) auf eine oder alle Seiten in einem vB ausgibt.
Da es sowas anscheinend nicht gibt, habe ich mir selbst folgendes gestrickt:
vB Total and Daily Counter
PHP/MySQL Total Hit Counter von eva2000
http://www.vbulletin.org/forum/showthread.php?s=&threadid=26527
PHP/MySQL Daily Hit Counter von Qads
http://qadsscripts.strykenet.com/home.php?what=Scripts&id=4
Was bringt mir der hack?
Dieser Hack zählt alle Zugriffe auf ein Forum und gibt zwei Zahlen aus:
-alle Hits des heutigen Tages (daily pageviews) - $hits_daily
-alle Hits insgesamt (total pageviews) - $hits_total
Demo: http://mcseboard.de
Getestet mit vB 2.2.x, theoretisch mit jeder vB version kompatibel, da unabhängig davon.
Was ist zu tun?
Übersicht:
1. Ausführung von 2 SQL Anweisungen zur Erstellung zweier Tables (zB. mit phpMyAdmin)
2. 15 Zeilen Code zum 'PHP parsed code' hinzufügen
3. 2 Variablen zur Ausgabe der Counter-werte in Template(s) plazieren (zB. forumhome)
Im Detail:
1. Ausführung von 2 SQL Anweisungen zB. per phpMyAdmin zur Erstellung zweier Tables
Anweisung CREATE counter_total
CREATE TABLE counter_total (count INT(11) UNSIGNED NOT NULL);
INSERT INTO counter_total SET count = 0;
Anweisung CREATE counter_daily
CREATE TABLE counter_daily (
ID int(11) NOT NULL auto_increment,
date text NOT NULL,
PRIMARY KEY (ID)
) TYPE=MyISAM;
Wie üblich solltet Ihr eine aktuelle Sicherung der Datenbank vor Einfügen der Anweisung haben.
Beide CREATEs stammen nicht von mir ;), beide scripts sind auf einigen vB's bzw. Seiten im Einsatz.
2. 15 Zeilen Code zum 'PHP parsed code' hinzufügen
// Daily & Total Counter Hack - kuddos to George (eva2000) of vb.com & Qads from Qads Scripts
// Sources:
// '[vB v2.2.2] page - hit counter in mysql' by eva2000 - http://www.vbulletin.org/forum/showthread.php?s=&threadid=26527
// 'PhpDaily Counter 1.1' by Qads - http://qadsscripts.strykenet.com/home.php?what=Scripts&id=4
//begin another vb counter hack
$counter_date = date("j/m/Y");
$counter_insert = mysql_query("INSERT INTO `counter_daily` (`ID`, `date`) VALUES (Null, '$counter_date')");
$counter_delete_old = mysql_query("DELETE FROM counter_daily WHERE date <> '$counter_date'");
$counter_show = mysql_query("SELECT * FROM counter_daily");
$hits_daily = mysql_num_rows($counter_show);
//$hits_daily = number_format($hits_daily);
$result = mysql_query("SELECT count FROM counter_total");
$hits_total = mysql_result($result, 0) + 1;
$result = mysql_query("UPDATE counter_total SET count = count + 1");
//$hits_total = number_format($hits_total);
// end another vb counter hack
Obigen Code in die Sektion 'PHP parsed code' in Eurem Style (ACP Menü Styles -> Modify -> 'MyStyle')
oder in das Template 'phpinclude' (ACP Menü Templates -> Modify -> 'MyStyle') setzen, wenn die
Hits für alle Forenseiten gezählt werden sollen.
Um nur die Hits auf die Startseite zu zählen, plaziert man das ganze in die index.php
oberhalb von $birthdaybits="";
Siehe auch post 31 (http://www.vbulletin.org/forum/showthread.php?postid=218006#post218006)
Beides habe ich ausprobiert und funzt wunderbar.
3. 2 Variablen zur Ausgabe der Counter-werte in Template(s) plazieren (zB. forumhome)
$hits_daily - Alle Hits des heutigen Tages (daily pageviews)
$hits_total - Alle Hits insgesamt (total pageviews)
Wer die Zahlen im englischen Format mit Kommatas nach den Tausenderstellen haben will,
kann die beiden Zeilen wieder einkommentieren:
//$hits_total = number_format($hits_total); & //$hits_daily = number_format($hits_daily);
Das war's, im Grunde sehr einfach.
Hoffe, es kann jemand etwas damit anfangen.
Verbesserungsvorschläge bitte posten.
Sub-optimal ist die Tatsache, daß der daily hits teil pro Hit eine row füllt, d.h. Anzahl
der daily hits = Anzahl an rows. Da die table aber täglich geleert wird,
stört's imo nicht sonderlich.
cu,
-Tom
wie vielleicht der ein oder andere mitbekommen hat, war ich einige Zeit auf
der Suche nach einem fertigen PHP/MySQL counter, der mir die absoluten und
täglichen Hits (pageviews) auf eine oder alle Seiten in einem vB ausgibt.
Da es sowas anscheinend nicht gibt, habe ich mir selbst folgendes gestrickt:
vB Total and Daily Counter
PHP/MySQL Total Hit Counter von eva2000
http://www.vbulletin.org/forum/showthread.php?s=&threadid=26527
PHP/MySQL Daily Hit Counter von Qads
http://qadsscripts.strykenet.com/home.php?what=Scripts&id=4
Was bringt mir der hack?
Dieser Hack zählt alle Zugriffe auf ein Forum und gibt zwei Zahlen aus:
-alle Hits des heutigen Tages (daily pageviews) - $hits_daily
-alle Hits insgesamt (total pageviews) - $hits_total
Demo: http://mcseboard.de
Getestet mit vB 2.2.x, theoretisch mit jeder vB version kompatibel, da unabhängig davon.
Was ist zu tun?
Übersicht:
1. Ausführung von 2 SQL Anweisungen zur Erstellung zweier Tables (zB. mit phpMyAdmin)
2. 15 Zeilen Code zum 'PHP parsed code' hinzufügen
3. 2 Variablen zur Ausgabe der Counter-werte in Template(s) plazieren (zB. forumhome)
Im Detail:
1. Ausführung von 2 SQL Anweisungen zB. per phpMyAdmin zur Erstellung zweier Tables
Anweisung CREATE counter_total
CREATE TABLE counter_total (count INT(11) UNSIGNED NOT NULL);
INSERT INTO counter_total SET count = 0;
Anweisung CREATE counter_daily
CREATE TABLE counter_daily (
ID int(11) NOT NULL auto_increment,
date text NOT NULL,
PRIMARY KEY (ID)
) TYPE=MyISAM;
Wie üblich solltet Ihr eine aktuelle Sicherung der Datenbank vor Einfügen der Anweisung haben.
Beide CREATEs stammen nicht von mir ;), beide scripts sind auf einigen vB's bzw. Seiten im Einsatz.
2. 15 Zeilen Code zum 'PHP parsed code' hinzufügen
// Daily & Total Counter Hack - kuddos to George (eva2000) of vb.com & Qads from Qads Scripts
// Sources:
// '[vB v2.2.2] page - hit counter in mysql' by eva2000 - http://www.vbulletin.org/forum/showthread.php?s=&threadid=26527
// 'PhpDaily Counter 1.1' by Qads - http://qadsscripts.strykenet.com/home.php?what=Scripts&id=4
//begin another vb counter hack
$counter_date = date("j/m/Y");
$counter_insert = mysql_query("INSERT INTO `counter_daily` (`ID`, `date`) VALUES (Null, '$counter_date')");
$counter_delete_old = mysql_query("DELETE FROM counter_daily WHERE date <> '$counter_date'");
$counter_show = mysql_query("SELECT * FROM counter_daily");
$hits_daily = mysql_num_rows($counter_show);
//$hits_daily = number_format($hits_daily);
$result = mysql_query("SELECT count FROM counter_total");
$hits_total = mysql_result($result, 0) + 1;
$result = mysql_query("UPDATE counter_total SET count = count + 1");
//$hits_total = number_format($hits_total);
// end another vb counter hack
Obigen Code in die Sektion 'PHP parsed code' in Eurem Style (ACP Menü Styles -> Modify -> 'MyStyle')
oder in das Template 'phpinclude' (ACP Menü Templates -> Modify -> 'MyStyle') setzen, wenn die
Hits für alle Forenseiten gezählt werden sollen.
Um nur die Hits auf die Startseite zu zählen, plaziert man das ganze in die index.php
oberhalb von $birthdaybits="";
Siehe auch post 31 (http://www.vbulletin.org/forum/showthread.php?postid=218006#post218006)
Beides habe ich ausprobiert und funzt wunderbar.
3. 2 Variablen zur Ausgabe der Counter-werte in Template(s) plazieren (zB. forumhome)
$hits_daily - Alle Hits des heutigen Tages (daily pageviews)
$hits_total - Alle Hits insgesamt (total pageviews)
Wer die Zahlen im englischen Format mit Kommatas nach den Tausenderstellen haben will,
kann die beiden Zeilen wieder einkommentieren:
//$hits_total = number_format($hits_total); & //$hits_daily = number_format($hits_daily);
Das war's, im Grunde sehr einfach.
Hoffe, es kann jemand etwas damit anfangen.
Verbesserungsvorschläge bitte posten.
Sub-optimal ist die Tatsache, daß der daily hits teil pro Hit eine row füllt, d.h. Anzahl
der daily hits = Anzahl an rows. Da die table aber täglich geleert wird,
stört's imo nicht sonderlich.
cu,
-Tom