Hi,
habe hier folgenden Code, den ich gerne als Klasse geschrieben hätte. Weiß einigermaßen, wie man Klassen schreibt, aber bin mir nicht ganz sicher und was ich auch probiere, irgendwas will nie...
PHP-Code:
<?php
// Variablen zum Auslesen:
// $counter liefert ein Array, welches Counter [0] und Hits [1] beinhaltet
// $useronline liefert ein Array mit den Online-Usernamen in alphabetischer Reihenfolge
// $usercount liefert die Anzahl der User die Online sind
//Hier die Variablen zum selberdefinieren
$dbserver = ''; // MySQL-Datenbank-Server
$dbname = ''; // Login-Name an MySQL-Server
$dbpass = ''; // Datenbankpasswort
$database = ''; // Datenbankname
$dbcountertab = 'counter'; // Tabelle in der die Userzahlen gespeichert werden
$dbcounterfield = 'count'; // Feld in dem die Userzahl steht
$dbhitfield = 'hits'; // Feld in dem die Hits gespeichert werden
$dbiptab = 'counterips'; // Tabelle in der die Counter-IPs gespeichert werden
$dbipfield = 'ip'; // Feld in der die IP steht
$dbiptimefield = 'time'; // Feld in der die Zeit fuer die IP steht
$dbusertab = 'users'; // Tabelle in der die User stehen
$dbuserfield = 'username'; // Feld in dem die Usernamen stehen
$dblastactfield = 'lastact'; // Feld in dem die letzte Useraktivitaet steht
$maximumtime = '3600'; // Maximale Zeit zwischen zwei Updates im ounterwert pro Person in Sekunden
$maxlastact = '600'; // Maximale Zeit seit der letzten Useraktivität bis dieser nicht mehr als Online gilt in Sekunden
// Benoetigtee Daten holen
$clientip = $_SERVER['REMOTE_ADDR'];
$timestamp = time();
$maxtime = $timestamp - $maximumtime;
$usertime = $timestamp - $maxlastact;
// Zu Datenbank verbinden
$mysql = mysql_connect($dbserver, $dbname, $dbpass);
mysql_select_db($database, $mysql);
// Daten ueberpruefen und Counter entsprechend updaten
mysql_query("UPDATE $dbcountertab SET $dbhitfield = $dbhitfield + 1", $mysql);
$check = mysql_query("SELECT * FROM `counterips` WHERE `ip` = '$clientip'", $mysql);
list($saveip,$savetime) = mysql_fetch_row($check);
If($saveip == $clientip && $savetime) { If($savetime < $maxtime) {
mysql_query("UPDATE $dbcountertab SET $dbcounterfield = $dbcounterfield + 1", $mysql);
mysql_query("UPDATE $dbiptab SET $dbiptimefield = '$timestamp' WHERE $dbipfield = '$clientip'", $mysql);
} } Else {
mysql_query("UPDATE $dbcountertab SET $dbcounterfield = $dbcounterfield + 1", $mysql);
$newip = "INSERT INTO $dbiptab ($dbipfield, $dbiptimefield) VALUES ('".$clientip."', '".$timestamp."')";
mysql_query($newip, $mysql); }
// $counter liefert ein Array, welches Counter [0] und Hits [1] beinhaltet
$counterchecksql = mysql_query("SELECT $dbcounterfield, $dbhitfield FROM $dbcountertab", $mysql);
$count = mysql_fetch_row($counterchecksql);
// $useronline liefert ein Array mit den Online-Usernamen in alphabetischer Reihenfolge
// $usercount liefert die Anzahl der User, die Online sind
$useronsql = mysql_query("SELECT $dbuserfield FROM $dbusertab WHERE $dblastactfield > $usertime", $mysql);
while($row = mysql_fetch_row($useronsql)) { $users[] = $row[0]; }
$usercount = count($users);
?>
Ich weiß, Counterklassen find ich sicher wie Sand am Meer, aber es geht mir nicht nur um dieses eine Beispiel...
Thx im voraus!
MfG Alex