loathsome Skrevet 11. mai 2007 Del Skrevet 11. mai 2007 (endret) Hei, Driver å mekker sammen et "Currently online"-script, for å teste hvordan det fungerer. index: Klikk for å se/fjerne innholdet nedenfor PHP <?php$db = simplexml_load_file('log.xml'); $ip = $_SERVER["REMOTE_ADDR"]; echo '<title>'.time().'</title>'; $mktime = time()+10; if(empty($db->ip)){ // if user is the only one $newip = $db->addChild('ip'); $newip->addAttribute('var', $ip); $newip->addChild('time', $mktime); file_put_contents('log.xml', $db->asXML()); } // check if ip is in db foreach($db->ip as $out){ if($out["var"] == $ip){ $found = true; // found ip $out->time = $mktime; } } // if theres somebody who's inactive, delete $i=0;foreach($db->ip as $out){ if($out->time < time()){ unset($db->ip[$i]); } $i++; } // write when done with both loops file_put_contents('log.xml', $db->asXML()); if(!$found){ // if not IP is in db $newip = $db->addChild('ip'); $newip->addAttribute('var', $ip); $newip->addChild('time', $mktime); file_put_contents('log.xml', $db->asXML()); } echo 'Currently online: '.count($db->ip).''; #echo time()+10; ?> log.xml kan se f. eks slik ut; Klikk for å se/fjerne innholdet nedenfor PHP <?xml version="1.0" encoding="utf-8"?><a><ip var="84.48.75.189"><time>1178909362</time></ip><ip var="10.0.0.4"><time>1178909366</time></ip></a> .. jeg får feilmeldingen Warning: main() [function.main]: Node no longer exists in xxx on line 23 når scriptet fjerner en inaktiv IP-adresse fra databasen. Hva skyldes dette? Tusen takk for svar! Endret 11. mai 2007 av loathsome Lenke til kommentar
-morten Skrevet 11. mai 2007 Del Skrevet 11. mai 2007 Vet ikke helt hvorfor foreach-en tryner, men så vidt jeg kan se virker hvertfall denne erstatningen: for ($i = 0; $i < count($db->ip); $i++) { if ($db->ip[$i]->time < time()) unset($db->ip[$i--]); } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå