Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Onko koodissa mitään vikaa ja muuta....

hymppa [01.09.2004 13:05:28]

#

eli onko tämä toimiva koodi

<?php

/* Tiedot tallennetaan tekstitiedostoon ja käyttäjät
erotellaan ip-osoitetteen mukaan

Voisi varmaan tehdä paljonkin kätevämminkin, mutta */

function onlinecounter() {

$datafile = "online.dat";
$act_time = 100; // aika jonka jälkeen käyttäjä ei enää selaile sivua (sekunteina)

$old_data = @unserialize( implode("", file($datafile) ) );
$new_data = array();
$found_ip = false;
$user_ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

for( $i=0, $j=count($old_data); $i<$j; $i++ ) {

if( $old_data[$i]['ip'] == $user_ip) {

$new_data[] = array( "ip" => $old_data[$i]['ip'],
"time" => time() );

$found_ip = true;

}

elseif( ( $old_data[$i]['time'] + $act_time ) > time() ) {

$new_data[] = $old_data[$i];

}

}

if( !$found_ip ) {

$new_data[] = array( "ip" => $user_ip,
"time" => time() );

}

if( $fp = @fopen( $datafile, "w" ) ) {
fwrite( $fp, serialize($new_data) );
fclose( $fp );
}

return count($new_data);

}

// funktiota voisi kutsua vaikka näin

print onlinecounter();

?>

en ainakaan saanut muutakuin 1 onlinen käyttäjän vain näkymään...

Eli oikeudet on annettu oikein. Tein toisen samantyyppisen online2.php ja siit otin ton funktio kutsun pois, rivi "print onlinecounter();" laitoin sen toisille sivulle, osaako laskea nyt oikein? ja miten muuten tään vois tehä, ettei toi online lukumäärä näkys kuin etusivulla.. mulla sivuilla on siisn toi includattu onlinen2.php josta toi tulostus kokonaan pois.. ettei se näkys siel. vinkkejä kaivataan..

tejeez [01.09.2004 13:27:01]

#

hymppa kirjoitti:

eli onko tämä toimiva koodi
....
en ainakaan saanut muutakuin 1 onlinen käyttäjän vain näkymään...

No jos se ei toimi niin ei kai se toimiva koodi ole.

lainaus:

ja miten muuten tään vois tehä, ettei toi online lukumäärä näkys kuin etusivulla..

Laita se vain etusivulle?

hymppa [01.09.2004 13:31:47]

#

se onkin etusivulla, mut mitä muille sivuille pitäisi laittaa? laitoin muuten saman mut otin ton koodin pätkän muilta sivuilta pois

print onlinecounter();

Meneekähän oikein? vai tuleeko jokin muu koodin pätkä sit muille sivuille?

tsuriga [01.09.2004 14:11:08]

#

EDIT: Jaa-a. Näyttää niin mukavalta tuo koodi, että en jaksa pahemmin haravoida läpi, mutta jotain tuo funktio kirjottaa tiedostoon ja palauttelee myös. Eihä toi printtaa mitää jos kutsut pelkkää funktiota, mahtasko auttaa johonkin noista ongelmistas?

hymppa [01.09.2004 14:23:24]

#

Joo, mut mistä tiedän et muitakin olis sivulla?

Vastaus

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

Tietoa sivustosta