Samuel
Erfahrenes Mitglied
PHP:
<?php
$minuten = 2;
session_start();
$sid = session_id();
$time_stamp = mktime();
$new_time_stamp = $time_stamp - $minuten * 60;
$conn = mysql_connect("localhost", "", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
$sql = "INSERT INTO counter (uhrzeit, sessid) VALUES ('".$time_stamp."', '".$sid."')";
$insert = mysql_query($sql) or die(mysql_error());
$sql = "SELECT DISTINCT COUNT(sessid) FROM counter WHERE uhrzeit > '".$new_time_stamp."'";
$result = mysql_query($sql) or die(mysql_error());
$user_online = mysql_result($result, 0);
$sql = "DELETE FROM counter WHERE uhrzeit <= '".$new_time_stamp."'";
$delete = mysql_query($sql) or die(mysql_error());
$sql = "SELECT sessid FROM counter GROUP BY sessid";
$result = mysql_query($sql) or die(mysql_error());
$sids = array();
while($res = mysql_fetch_array($result)) {
$sids[] = $res['sessid'];
}
$fp = fopen("counter.txt", "r");
$bisher = fgets($fp, 512);
if(!in_array($sid, $sids)) {
$bisher++;
fputs($fp, $bisher);
}
fclose($fp);
echo "Bisher: ".$bisher."<br>";
echo "User Online: ".$user_online;
?>
ich will mit dem script anzeigen wieviele user schon online waren und wer gerade online ist (zusätzlich soll es noch ne reloadsperre haben - in dem falle eine die zwei minuten aktiv ist)
wenn ich jetzt die seite anzeigen lasse und strg+r drücke zeigt es mir bei useronline immer eins dazu an. also zuerst 1, dann 2, dann 3
$sql = "SELECT DISTINCT COUNT(sessid) FROM counter WHERE uhrzeit > '".$new_time_stamp."'";
das sollte mir doch bei drei einträgen mit der selben sessid doch nur eins ausgaben... ich glaub da liegt der fehler...
würde mich auf eine rasche antwort sehr freuen
danke im voraus
greetingz