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
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