Bräuchte mal hilfe wegen Counter Einbau

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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.
Antworten
michaelxxx
Mitglied
Beiträge: 136
Registriert: 15.10.2004 18:40

Bräuchte mal hilfe wegen Counter Einbau

Beitrag von michaelxxx »

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
michaelxxx
Mitglied
Beiträge: 136
Registriert: 15.10.2004 18:40

Beitrag von michaelxxx »

nach mal nach oben holen möchte...
weiß keiner rat? :cry:
blubb0r
Mitglied
Beiträge: 96
Registriert: 12.10.2004 18:09
Wohnort: Stadtlohn
Kontaktdaten:

Beitrag von blubb0r »

du musst die sachen irgendwo in deiner view_online.php einbauen, template variabeln anlegen und die dann in deiner index_body.tpl abrufen
michaelxxx
Mitglied
Beiträge: 136
Registriert: 15.10.2004 18:40

Beitrag von michaelxxx »

ich glaub das wird zu kompliziert für mich... :-?
blubb0r
Mitglied
Beiträge: 96
Registriert: 12.10.2004 18:09
Wohnort: Stadtlohn
Kontaktdaten:

Beitrag von blubb0r »

hm, dann helf ich dir mal:
in deiner viewonline.php ergänze nach

Code: Alles auswählen

$template->set_filenames(array(
	'body' => 'viewonline_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);
das:

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();
ergänze dann vor

Code: Alles auswählen

'L_WHOSONLINE' => $lang['Who_is_Online'],
das:

Code: Alles auswählen

'USER_ONLINE' => $online->user_online,
'USER_TODAY' => $online->user_today,
'USER_ALL' => $online->user_all,
ergänze dann in deiner templates/dein_template/index_body.tpl irgendwo

Code: Alles auswählen

{USER_ONLINE} User online.<br>
{USER_TODAY} User heute.<br>
{USER_ALL} User gesamt.
dann müsste das funktionieren. schreibe einfach noch mal wenn nicht.

blubb0r
michaelxxx
Mitglied
Beiträge: 136
Registriert: 15.10.2004 18:40

Beitrag von michaelxxx »

Hallo blubb0r,
danke erst mal für die Hilfe.
Leider hat das so jetzt aber noch nichtgeklappt. Bis jetzt schreib er noch keine Daten in die Datenbank. PM hab ich Dir geschickt.

Vielleicht kannst Du ja nochmal schauen?

Viele Grüße
Michael
Antworten

Zurück zu „phpBB 2.0: Mod Support“