Juuh olen hetken aikaa väsäillu foorumia ja nyt tein online laskurin siihen, joka toimii puolittain. Homma pelaa muuten, mutta laskuri kulkee perässä. Itselläni on kyseinen sivu auko, jossa tuo laskuri on, ensin lukee 1 vieras online, sitten 2 vierasta online, sitten ei yhtään vierasta online ja sitten taas 1 vieas online. Scriptissä kusee tulostus jotenkin, mutta miten. Tässä olisi koodia:
<?php ##Merkkaa online tapahtumat ##Online $kysely2 = "SELECT * FROM online ORDER BY id"; $haku2 = mysql_query($kysely2) or die ("Virhe: 13". mysql_error()); if (mysql_numrows($haku2) > 1) { $query = "SELECT * FROM online WHERE ip = \"$REMOTE_ADDR\" "; $result = mysql_query($query) or die ("Virhe rivi 14: ". mysql_error()); $online = mysql_numrows($haku2); $ei = 1; } else { $online = 0; $ei = 0; } ##tarkistetaan umpeutuneet for ($i = 0; $i < $online; $i++) { if (mysql_result($haku2, $i, "aika") < time() - 300) { $nimi = mysql_result($haku2, $i, "nimi"); mysql_query("DELETE FROM online WHERE nimi = \"$nimi\"") or die ("Virhe: 31". mysql_error()); } } ##Lisätään online if ($ei == 0) { if ($sisalla == TRUE) { $kysely = 'SELECT * FROM users WHERE nimi = "'. $_COOKIE["foorum_nimi"] .'"'; $haku = mysql_query($kysely); $nimi = mysql_result($haku, 0, "nimi"); $id = mysql_result($haku, 0, "id"); } else { $nimi = " "; $id = 0; } $online_rivi = 'INSERT INTO online (ip, id, nimi, aika) VALUES ("' .$REMOTE_ADDR .'", '.$id.', "'.$nimi.'", ' .time() .')'; mysql_query($online_rivi) or die ("Virhe: 49". mysql_error()); } $kysely3 = "SELECT * FROM online ORDER BY id"; $haku3 = mysql_query($kysely3) or die ("Virhe: 13". mysql_error()); $in_jasen = 0; $in_vieras = 0; $in = mysql_numrows($haku3); ##Tulostetaan online for ($o = 0; $o < mysql_numrows($haku3); $o++) { if (mysql_result($haku3, $o, "id") > 0) { echo mysql_result($haku3, $o, "nimi"); echo ", "; $in_jasen++; } else { $in_vieras++; } } if ($in_vieras == 1) { echo " $in_vieras vieras online"; } elseif ($in_vieras == 0) { echo " ei yhtään vierasta online"; } else { echo " $in_vieras vierasta online"; } ?>
<?php ##Tulostaa online $kysely3 = "SELECT * FROM online ORDER BY id"; $haku3 = mysql_query($kysely3) or die ("Virhe: 13". mysql_error()); $in_jasen = 0; $in_vieras = 0; $in = mysql_numrows($haku3); ##Tulostetaan online for ($o = 0; $o < mysql_numrows($haku3); $o++) { if (mysql_result($haku3, $i, "aika") < time() - 300) { if (mysql_result($haku3, $o, "id") > 0) { echo mysql_result($haku3, $o, "nimi"); echo ", "; $in_jasen++; } else { $in_vieras++; } } } if ($in_vieras == 1) { echo " $in_vieras vieras online"; } elseif ($in_vieras == 0) { echo " ei yhtään vierasta online"; } else { echo " $in_vieras vierasta online"; } ?>
Luultavasti viimeisessä pätkässä mättää joku, mutta en keksi mikä. Scriptin on toiminnassa http://juha127.arkku.net/keskustelu/
EDIT. Löysin itse virheen $REMOTE_ADDR ei toimi arkun servulla joten ip:tä ei kirjattu ja olin unohtanut päivittää pari tiedostoa. :D Nyt luulen että toimii
Aihe on jo aika vanha, joten et voi enää vastata siihen.