also ich habe ein problem habe den counter code gefunden.
nur ist es so das der online Status nach 300sekunden laut
gelöscht wird somit wenn einer länger als 5min auf der seite ist verschwindet er.
wie kann ich das machen das er immer prüft ob der user noch da ist und dann auch noch den online status richtig anzeigt?????
PHP-Code:
<?php
//Verbindung zur Datenbank
class config {
const host = 'localhost';
const user = 'dbuser';
const pass = 'dbpass';
const data = 'counter';
}
mysql_connect(config::host,config::user,config::pass) || die(mysql_error());
mysql_select_db(config::data) || die(mysql_error());
//Jetzt
$jetzt = time();
//Total auslesen
$getcount = mysql_fetch_object(mysql_query("SELECT total FROM counter WHERE id = '1' LIMIT 1"));
//IP speichern, falls noch nicht vorhanden
$query = mysql_query("SELECT ip, zeit, total FROM counter WHERE ip = '".$_SERVER['REMOTE_ADDR']."' LIMIT 1");
if(mysql_num_rows($query) == 0) {
$newcount = $getcount->total+1;
$update = mysql_query("UPDATE counter SET total = '".$newcount."' WHERE id = '1' ") || die(mysql_error());
$insert = mysql_query("INSERT INTO counter (ip, zeit) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".$jetzt."')") || die(mysql_error());
} else {
$newcount = $getcount->total;
}
//Einträge älter als 2 Tage löschen
$alt = $jetzt - (3600*48);
mysql_query("DELETE FROM counter WHERE zeit < '".$alt."' && id != '1'");
//Besucher online auslesen
$cnt_online = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit + 300 > '".$jetzt."'"); //300 entspricht 300 Sekunden, also 5 Minuten
$online = mysql_result($cnt_online, 0, 0);
//Besucher gestern auslesen
$cnt_gestern = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(-24, 0, 0)."' && zeit <= '".mktime(-1, 59, 59)."'");
$gestern = mysql_result($cnt_gestern, 0, 0);
//Besucher heute auslesen
$cnt_heute = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit >= '".mktime(0, 0, 0)."' && zeit <= '".mktime(23, 59, 59)."'");
$heute = mysql_result($cnt_heute, 0, 0);
//Ausgabe
echo "Heute: ".$heute."<br/>";
echo "Gestern: ".$gestern."<br/>";
echo "Total: ".$newcount."<br/>";
echo "Online: ".$online."<br/>";
?>
PHP-Code:
//Besucher online auslesen
$cnt_online = mysql_query("SELECT COUNT(*) FROM counter WHERE zeit + 300 > '".$jetzt."'"); //300 entspricht 300 Sekunden, also 5 Minuten
$online = mysql_result($cnt_online, 0, 0);
wie kann ich das machen das er immer prüft ob der user noch da ist und dann auch noch den online status richtig anzeigt?????
Kommentar