Hei,
yhtäkkiä sain idean koodata oman irc-gallerian. Palvelussa on nyt kommentointi, ilmoitus uusista kommenteista, kuva-albumit, yksityiskommentit ja jokunen käyttäjäkohtainen asetus.
No nyt tuli sitten ongelma josta ite en pääse enää yli.
Tarkoituksenani oli koodata sellainen systeemi, josta näkee ketkä ovat online. Kirjautumisen käsittelevä php-tiedosto tekee keksien asettamisen lisäksi näin
ja vastaavasti uloskirjautumisen käsittelevä tiedosto tekee näin:
$prof = $_GET['tunnus']; $online = file("ol.txt"); $onlinemaara = count($online); $tiedosto = fopen("ol.txt", "w"); for ( $i=0; $i < $onlinemaara ; $i++ ) { $onprof = $online[$i]; if($onprof == $prof) { $poistettava = $i; } } for ($i = 0; $i < $onlinemaara; $i++) { if($i != $poistettava) { fwrite($tiedosto, $online[$i]); } } fclose($tiedosto);
index.php sitte käy ton txt-tiedoston läpi ja listaa online -otsikon alle tiedostosta löytyvät käyttäjät. Nyt käy näin:
Käyttäjä1 kirjautui sisään, online näkyi käyttäjä1. Käyttäjä2 kirjautui sisään, online näkyi käyttäjä1 ja käyttäjä2. Käyttäjä2 kirjautui ulos, online näkyi käyttäjä2.
Jostain syystä nyt ei vain leikkaa. Vika on tuossa rivinpoistossa; ymmärrän, että tiedoston sisältö pitäisi lukea ja kirjoittaa uudestaan ilman yhtä riviä. Mutta nyt ei vaan millään sytytä. Jotenki koko ajattelu täysin tukossa tämän asian suhteen :S Ensin ajattelin tuon olevan yksi helpoimmista asioista, jos verrataan yksityisviesteihin jne. Mutta kuinkas kävikään!
Liekö kysymys sitten siitä, että $prof
-muuttujassa ei ole rivinvaihtoa perässä, kun taas $onprof
-muuttujassa on (file
-funktion jäljiltä), jolloin $onprof == $prof
ei toteudu koskaan.
Ja sen rivinvaihdonhan saa näppärimmin pois trim()-funktiolla.
Ei jumankauta. Kuinkahan tyhmäksi sitä itsensä voikaan tuntea! Miljoonassa muussa paikassa käyttänyt tuota trimmiä samantyyliseen vertailuun ja nyt sitten pari päivää tuli tuota pohdittua :D Huh huh. Noniin, nythän se sitten toimii. Tattis vaan. :)
Toisaalta tuo koko toteutus on niin bugialtis, että pitäis tehdä homma kokonaan uusiksi. Tuonkun saa melko sekaisin kirjautumalla toisella koneella ilman että on ekalla kirjautunut ulos. Mutta tulipahan tuo yks kohta ratkastua ja sain siitä mielenrauhan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.