-
Besucher Online ?
Ich weiss nicht wo dran es liegt aber es klappt nicht:
PHP-Code:
<?php
$db_hostname = "";
$db_username = "";
$db_passwort = "";
$db_database = "";
$tabelle ="onlineuser";
$online_time ="300";
$db = @mysql_connect($db_hostname, $db_username, $db_passwort) or die("Konnte Verbindung nicht herstellen: " . mysql_error());
@mysql_select_db($db_database, $db) or die("Konnte Datenbank nicht finden");
$uid = md5(uniqid(microtime()));
$ip = $_SERVER['REMOTE_ADDR'];
$dummy = "";
$result = mysql_query("SELECT ip FROM " . $tabelle." WHERE IP = '" . $ip . "'") or die(mysql_error());
if (mysql_num_rows($result) == 0) {
$sqlQuery = sprintf("INSERT INTO %s (uid, ip, time) VALUES ('%s', '%s', '%s', '%s')",
$tabelle,
$uid,
$ip,
time()
);
mysql_query($sqlQuery) or die("Insert fehlgeschlagen: " . mysql_error());
}
$dtime = time() - $online_time;
@mysql_query("DELETE FROM " . $tabelle . " WHERE TIME < " . $dtime) or die(mysql_error());
$result = mysql_query("SELECT COUNT(IP) as total FROM " . $tabelle);
list($user_online) = mysql_fetch_array($result);
echo "es sind " . $user_online . " user online";
?>
-
"Es klappt nicht" ist die tollste Fehlerbeschreibung der Welt. So präzise. Jeder weiß sofort wonach er suchen muss. Es gibt ja nicht unheimlich viele unterschiedliche Fehlerquellen die "nicht klappen" könnten. Nein. Und die ausgegebene Fehlermeldung ist sowieso unwichtig und bringt nie was.
-
o.O
Mal ne frage
1,Warum zur Hölle nimmst du list($user_online) ?
Nimm einfach
$user_online = mysql_num_rows($result);
Macht das selbe spart aber resursen und macht das script ein bischen sicherer da keine echten user daten geladen werden ;)
2,Warum zur hölle benutz du sprintf o.O
Was willst du damit erreichen ? Du willst doch blos einen Eintrag machen was hat sprintf damit zu tuhn ?
Würde
INSERT INTO `$tabelle` (`uid`, `ip`, `time`) VALUES ('$uid', ' $ip', 'NOW()')",
nicht auch reichen o.O und warum hast du 3 Spalten angewählt aber 4 VALUES o.O
Und ne frage (bitte sag ja)
nutz du den Sql Timestamp ? Der Währe sehr nützlich bei einem Online Script
wenn du esüber time() machst muss der obere text von mir
INSERT INTO `$tabelle` (`uid`, `ip`, `time`) VALUES ('$uid', ' $ip', 'time()')",
heissen.
Edit:
Achja ein Tip von einem n00bkröten etwas alle wichtigen Variablen am ende eines Scriptes unseten mit unset($Variable); damit bist du immer auf der sicheren seite ;)
-
Hat sich erledigt hab den fehler gefunden lol >_< >_< >_<