Hallo,
ich möchte mir gerne einen User Counter im Forum einbauen.
wollte dafür erst den Last_visit_mod von Niels nehmen, aber der war mir etwas zu umfangreich
und ein einfach externer Counter müsste es ja auch tun, oder?
Habe jetzt diesen hier gefunden:
http://www.php-deluxe.net/class/class.p ... t002.class
Kann mir jemand helfen, wie ich es jetzt schaffe, diesen Counter in die index.php mit einzubauen, so dass dann unten in den Board Stats die Anzeige: Besucher heute: xx, insgesamt: xx mit erscheint.
Die Tabellen in der mysql Datenbank hab ich bereits angelegt.
Wie mache ich das jetzt am geschicktesten?
Wäre für Eure hilfe echt dankbar.
Grüße
Michael
Bräuchte mal hilfe wegen Counter Einbau
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
- Mitglied
- Beiträge: 136
- Registriert: 15.10.2004 18:40
-
- Mitglied
- Beiträge: 136
- Registriert: 15.10.2004 18:40
-
- Mitglied
- Beiträge: 136
- Registriert: 15.10.2004 18:40
hm, dann helf ich dir mal:
in deiner viewonline.php ergänze nachdas:ergänze dann vordas:
ergänze dann in deiner templates/dein_template/index_body.tpl irgendwodann müsste das funktionieren. schreibe einfach noch mal wenn nicht.
blubb0r
in deiner viewonline.php ergänze nach
Code: Alles auswählen
$template->set_filenames(array(
'body' => 'viewonline_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);
Code: Alles auswählen
class Counter {
// Hier deklarieren Sie Ihre Einstellungen
var $my_host = "localhost";
var $my_user = "IhrBenutzername";
var $my_pass = "IhrPasswort";
var $my_db = "IhreDatenbank";
// Zeitspanne für user_online
var $sekunden = 60;
// Einstellungen Ende
var $ip, $session, $user_online, $user_today, $user_all, $zeit, $zeitspanne, $sql;
var $db, $connect, $result, $data, $query;
var $recipent = array();
var $browsername, $kennung, $os;
function Counter() {
// Session wird gestartet
@session_start();
$this->session = session_id();
// Ermittlung der IP und des HTTP_USER_AGENTen
$this->ip = getenv("REMOTE_ADDR");
$this->kennung = getenv("HTTP_USER_AGENT");
// öffnen der Datenbank
$this->DB();
// ermitteln des heutigen Datums
$this->heute();
$this->zeit();
$this->zeitspanne();
// löschen alter Einträge
$this->delete_data();
// prüft ob die IP schon vorhanden ist
$this->session_vorhanden();
// ermitteln der User
$this->user_online = $this->online_user();
$this->user_today = $this->today_user();
$this->user_all = $this->all_user();
// schließen der Datenbank
$this->DB_close();
}
function browser() {
// Browserabfrage
if (eregi("opera",$this->kennung)) {
$this->browsername = 'Opera';
} elseif (eregi("netscape",$this->kennung)) {
$this->browsername = 'Netscape';
} elseif (eregi("msie",$this->kennung)) {
$this->browsername = 'IE';
} elseif (eregi("mozilla",$this->kennung)) {
$this->browsername = 'Mozilla';
} elseif (eregi("konqueror",$this->kennung)) {
$this->browsername = 'Konqueror';
} elseif (eregi("lynx",$this->kennung)) {
$this->browsername = 'Lynx';
} elseif (eregi("galeon",$this->kennung)) {
$this->browsername='Galeon';
} else {
$this->browsername = 'other';
}
return ($this->browsername);
}
function os() {
// OS - Abfrage
if (eregi("Linux",$this->kennung)) {
$this->os = 'Linux';
} elseif (eregi("Win",$this->kennung)) {
$this->os = 'Windows';
} elseif (eregi("Mac",$this->kennung)) {
$this->os = 'Mac';
} elseif (eregi("BSD",$this->kennung)) {
$this->os = 'BSD';
} elseif (eregi("Amiga",$this->kennung)) {
$this->os = 'Amiga';
} elseif (eregi("Sun",$this->kennung)) {
$this->os = 'Sun';
} elseif (eregi("IRIX",$this->kennung)) {
$this->os = 'IRIX';
} elseif (eregi("BeOS",$this->kennung)) {
$this->os = 'BeOS';
} elseif (eregi("OS/2",$this->kennung)) {
$this->os = 'OS/2';
} elseif (eregi("AIX",$this->kennung)) {
$this->os = 'AIX';
} else {
$this->os ='other';
}
return ($this->os);
}
// stellt die Verbindung her und generiert bei Misserfolg die Fehlermeldung
function DB() {
$this->connect = @mysql_connect($this->my_host, $this->my_user, $this->my_pass);
if (!$this->connect) {
die($this->DB_Error());
}
$this->db = mysql_select_db($this->my_db, $this->connect);
if (!$this->db) {
die($this->DB_Error());
}
}
// generiert die Fehlermeldung
function DB_Error() {
echo "Fehlernummer: ".mysql_errno()."<br />\n";
echo "Fehlertext: " .mysql_error()."<br />\n";
}
// sql - query
function DB_query($sql) {
return ($this->result = mysql_query($sql));
}
// ermittelt die Anzahl der Datensätze
function DB_numrows() {
return (mysql_num_rows($this->result));
}
function DB_array() {
while ($row = mysql_fetch_object($this->result)) {
array_push($this->recipent,$row);
}
return ($this->recipent);
}
// schließt die Datenbank
function DB_close() {
mysql_close($this->connect);
}
// ermittelt die Zeit
function zeit() {
return ($this->zeit = time());
}
// Festlegung der Zeitspanne
function zeitspanne() {
return ($this->zeitspanne = $this->zeit-$this->sekunden);
}
// ermittelt die Zeit von Heute
function heute() {
return ($this->heute = mktime(0, 0, 0, date ("m") , date ("d"), date("Y")));
}
// prüft ob die Session schon vorhanden ist
function session_vorhanden() {
$this->DB_query("select session from besucher where session='$this->session'");
$this->DB_array();
foreach ($this->recipent as $session) {
$session_vorhanden = $session->session;
}
// die Session ist noch nicht vorhanden :: die Funktion write_data() wird aufgerufen
if (!$session_vorhanden) {
$this->write_data();
} else {
// die Session ist schon vorhanden :: die Funktion updata_data() wird aufgerufen
$this->update_data();
}
}
// schreibt die Besuchzeit in die Datenbank
function write_data() {
$this->browser();
$this->os();
return ($this->db_query("insert into besucher (ip,session,browser,os,besuch_zeit) values
('$this->ip','$this->session','$this->browsername','$this->os', '$this->zeit')"));
}
// löscht alle Datensätze die älter als die Zeitspanne sind
function delete_data() {
return ($this->db_query("delete from besucher where besuch_zeit < '$this->heute'"));
}
// die Datensätze werden geupdatet
function update_data() {
return ($this->DB_query("update LOW_PRIORITY besucher
set besuch_zeit='$this->zeit' where session='$this->session'"));
}
// Ermittlung aller User die gerade online sind
function online_user() {
$this->DB_query("select besuch_zeit from besucher where besuch_zeit > '$this->zeitspanne'");
return ($this->DB_numrows());
}
// Ermittlung aller User von Heute
function today_user() {
$this->DB_query("select besuch_zeit from besucher where besuch_zeit > '$this->heute'");
return ($this->DB_numrows());
}
// Ermittlung aller User
function all_user() {
$this->DB_query("select max(besucher_id) as besucher_id from besucher");
$this->DB_array();
foreach ($this->recipent as $all) {
}
return ($this->user_all = $all->besucher_id);
}
}
$online = new Counter();
Code: Alles auswählen
'L_WHOSONLINE' => $lang['Who_is_Online'],
Code: Alles auswählen
'USER_ONLINE' => $online->user_online,
'USER_TODAY' => $online->user_today,
'USER_ALL' => $online->user_all,
Code: Alles auswählen
{USER_ONLINE} User online.<br>
{USER_TODAY} User heute.<br>
{USER_ALL} User gesamt.
blubb0r
-
- Mitglied
- Beiträge: 136
- Registriert: 15.10.2004 18:40