Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Onlineri kulkee 2-3 latausta perässä

juha127 [05.07.2006 13:03:06]

#

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&auml;&auml;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&auml;&auml;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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta