$date = time() - 300;
mysql_query("DELETE FROM online WHERE date < $date") or die(mysql_error());
mysql_query("DELETE FROM online WHERE ip = '$HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR]'") or die(mysql_error());
$date = time();
mysql_query("INSERT INTO online VALUES( '$HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR]', '$date' )") or die(mysql_error());
$query = mysql_query("SELECT * FROM online") or die(mysql_error());
$count = mysql_num_rows($query) or die(mysql_error());
echo "Antalet snubbar online: ". $count ."! Din IP är: ". $HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR];
Får inget felmeddelande eller så, det enda som blir fel är att de rader med IP-nummer som är samma som hos den som uppdaterar sidan (går in på den) inte tas bort.
Någon som har en idé? Här är en länk till en phpinfo()-fil:
Visserligen har jag aldrig sett, än mindre använt, den variabel du använder för IP. Själv brukar jag använda REMOTE_ADDR, men om det fungerar som du har skrivit så gör vi ett försök. :)
date = time() - 300;
mysql_query("DELETE FROM online WHERE date < $date") or die(mysql_error());
mysql_query("DELETE FROM online WHERE ip = '".$HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR]."'") or die(mysql_error());
$date = time();
mysql_query("INSERT INTO online VALUES( '".$HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR]."', '$date' )") or die(mysql_error());
$query = mysql_query("SELECT * FROM online") or die(mysql_error());
$count = mysql_num_rows($query) or die(mysql_error());
echo "Antalet snubbar online: ". $count ."! Din IP är: ". $HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR];
$date = time() - 180;
@mysql_query("DELETE FROM online WHERE date < $date") or die(mysql_error());
@mysql_query("DELETE FROM online WHERE ip = '". $HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR] ."'") or die(mysql_error());
$date = time();
@mysql_query("INSERT INTO online VALUES( '". $HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR] ."', '$date' )") or die(mysql_error());
$query = mysql_query("SELECT * FROM online") or die(mysql_error());
$count = mysql_num_rows($query) or die(mysql_error());
Anledningen till att jag använder $HTTP_SERVER_VARS[HTTP_X_FORWARDED_FOR] och inte $REMOTE_ADDR är att den senare bara visar serverns IP av någon anledning... :l
Det som verkar vara fel är som sagt den query som tar bort alla fält där IP är lika med IP...
$id = session_id();
$date = time() - 180;
$time = time();
@mysql_query("DELETE FROM online WHERE date < '$date'") or die(mysql_error());
@mysql_query("DELETE FROM online WHERE id = '$id'") or die(mysql_error());
@mysql_query("INSERT INTO online VALUES( '$id', '$time' )") or die(mysql_error());
$query = mysql_query("SELECT * FROM online") or die(mysql_error());
$count = mysql_num_rows($query) or die(mysql_error());
if ($date_optimize == 01) {
mysql_query("OPTIMIZE TABLE online");
}
Hmm jag har nått liknande script som du kan prova... men jag förstår inte varför du gör en DELETE FROM online WHERE id='$id' ??
$id = session_id();
$date = time()-180;
$time = time();
mysql_query("DELETE FROM online WHERE date < $date") or die(mysql_error());
$query = mysql_query("SELECT * FROM online WHERE id='$id'") or die(mysql_error());
if ($row = mysql_fetch_row($query))
{
mysql_query("UPDATE online SET date='$time' WHERE id='$id'") or die(mysql_error());
}
else
{
mysql_query("INSERT INTO online (id, date) VALUES('$id', '$time')") or die(mysql_error());
}
$query = mysql_query("SELECT * FROM online") or die(mysql_error());
$count = mysql_num_rows($query) or die(mysql_error());
@mysql_query("DELETE FROM online WHERE date < '$date'") or die(mysql_error());
$res = mysql_query("SELECT * FROM online WHERE id = '$id'");
$num = mysql_num_rows($res);
if($num == 0){
@mysql_query("INSERT INTO online VALUES( '$id', '$time' )") or die(mysql_error());
} else {
@mysql_query("UPDATE online SET date = '$time' WHERE id = '$id'") or die(mysql_error());
}
Eller
@mysql_query("DELETE FROM online WHERE date < '$date'") or die(mysql_error());
@mysql_query("DELETE FROM online WHERE id = '$id'");
@mysql_query("INSERT INTO online VALUES( '$id', '$time' )") or die(mysql_error());
------------------
Hamster!
[Redigerat av Viking den 02 feb 2002]
145 ms totalt · 3 externa anrop · v20260731065814-full.b746b907