VikingMedlem sedan maj 20003 652 inlägg function peopleOnline() {
if(!empty($HTTP_X_FORWARDED_FOR)) {
$ip = $HTTP_X_FORWARDED_FOR;
} elseif(!empty($REMOTE_ADDR)) {
$ip = $REMOTE_ADDR;
}
$old_Time = time() - 300;
mysql_query("DELETE FROM peopleOnline WHERE time <= '". $old_Time ."'") or die(mysql_error());
$slct_IP_Query = mysql_Query("SELECT * FROM peopleOnline WHERE ip = '". $ip ."'") or die(mysql_error());
$num_res_Query = mysql_Num_Rows($slct_IP_Query);
$current_Time = time();
if($num_res_Query > 0) {
mysql_Query("UPDATE peopleOnline SET time = '". $current_Time ."' WHERE ip = '". $ip ."'") or die(mysql_error());
} else {
mysql_Query("INSERT INTO peopleOnline VALUES( '". $ip ."', '". $current_Time ."' )") or die(mysql_error());
}
$slct_Online_Query = mysql_Query("SELECT * FROM peopleOnline") or die(mysql_error());
$num_Online_Query = mysql_Num_Rows($slct_Online_Query);
return $num_Online_Query;
}
Nån som ser något fel? :)
Jag får inget felmeddelande av något slag, det enda som händer är att det inte fungerar, dvs, den returnerar bara "1" hela tiden :q
jag kan ju ha fel eftersom jag inte läst igenom koden..
men fungerar den inte såhär:
om IP finns som post
....uppdatera posten med ny tid
annars
....lägg till posten
med andra ord: det finns alltid något i tabellen, därför returneras alltid 1 om du/ni sitter och testar scriptet är på samma ip.
Men som sagt, jag kan ju alltid ha fel.
;)
VikingMedlem sedan maj 20003 652 inlägg Tja, såå dum att jag inte testar från flera IP's är jag inte :e
SPiNMedlem sedan mars 20007 896 inlägg Det kan inte vara så illa att resultatet från den första SQL-frågan hänger kvar i variabeln $slct_Online_Query
? Den BÖR ju inte göra det, men man kan aldrig lita på datorer och IT. ;)
Prova alltså att byta namn när du kör den sista SQL-frågan. :)
VikingMedlem sedan maj 20003 652 inlägg Nja, de har ju inte samma namn; $num_Online_Query, $slct_IP_Query... Så det borde ju inte vara det...? :)
SPiNMedlem sedan mars 20007 896 inlägg Det har du iofs rätt i, men man vet ju aldrig. :e ;)
KimMedlem sedan jan. 20007 697 inlägg Jag kan ju ha fel, men är PHP verkligen "case insensitive" i funktionsnamn? T.ex. står det mysql_Query() och inte mysql_query() .
Testa att bara använda små bokstäver. Eller hur fungerar det?
SPiNMedlem sedan mars 20007 896 inlägg PHP är case sensitive på användardefinierade variabler och funktioner har jag för mig, så mySQL_quERY() kan man skriva, men han borde inte kunna skriva POPLeonLine() när han anropar sin funktion.
Inte säker, men jag tror att det är så. :)
VikingMedlem sedan maj 20003 652 inlägg Hum, det returnerar ju ett resultat, så det borde inte vara problemet... :)
VikingMedlem sedan maj 20003 652 inlägg Jag gissar att felet sitter här:
[kod]$old_Time = time() - 300;
mysql_query("DELETE FROM peopleOnline WHERE time <= '". $old_Time ."'") or die(mysql_error());[/kod