christdi Skrevet 10. februar 2004 Del Skrevet 10. februar 2004 Hei. Jeg har fått hjelp til å lage et php skript som logger ipadresser og når de sist besøkte hjemmesiden min. Ip adressene blir skrevet til en tekstfil (ip.txt) sammen med blant annet tidspunkt, hvilken nettleser brukeren har og hvilken port de bruker lokalt. Jeg har problem med sorteringen. Alt virker greit utenom når jeg prøve å klikke på overskriftene i tabellen. Jeg vil at det skal sorteres (synkende) også etter hver overskrift i tabellen. Dette får jeg ikke til. Noen tips ? Nedenfor er skriptet : <? ################################################## if(file_exists("ip.txt")) { $dbentries=file("ip.txt"); foreach ($dbentries as $line) { $line=rtrim($line); $elements=split(";",$line); $db_ip=$elements[0]; $db_time=$elements[1]; $DB[$db_ip]=$db_time; $porter[$db_ip]=$elements[2]; $browser[$db_ip]=$elements[3]; $sporter[$db_ip]=$elements[4]; }} $visitor_ip=$REMOTE_ADDR; $visitor_time=time(); $DB[$visitor_ip]=$visitor_time; $porter[$visitor_ip]=$REMOTE_PORT; $sporter[$visitor_ip]=$SERVER_PORT; $browser[$visitor_ip]=$HTTP_USER_AGENT; $fd=fopen("ip.txt","w+"); foreach($DB as $ip => $time) { fwrite($fd,"$ip;$time;$porter[$ip];$browser[$ip];$sporter[$ip]\n"); } fclose($fd); ################################################ echo "<h2>Unik IP registrering</h2>"; $teller = count($dbentries); echo "Det er $teller treff i tabellen<br>"; echo "<table cellpadding=4 cellspacing=1 border=1> <tr> <td>Nr</td> <td><a href=vis_log.php?sort=$ip>IP</a></td> <td><a href=vis_log.php?sort=$time>Tid for besøk</a></td> <td><a href=vis_log.php?sort=$ip[$porter]>Lokal Port</a></td> <td><a href=vis_log.php?sort=$ip[$browser]>Nettleser</a></td> <td><a href=vis_log.php?sort=$ip[$sporter]>Tjener Port</a></td> </tr>"; $ip_er = array_keys($DB); usort($ip_er,"ip_sort"); foreach ($ip_er as $ip) { $time = $DB[$ip]; $counter++; print "<tr> <td>$counter</td> <td>$ip</td> <td>".date("d.m.Y H:i:s",$time)."</td> <td>$porter[$ip]</td> <td>".substr($browser[$ip],0,68)."</td> <td>$sporter[$ip]</td> </tr>"; } echo "</table>"; ################################################## function ip_sort($a,$b){ global $DB; $time_a = $DB[$a]; $time_b = $DB[$b]; if($time_a < $time_b) return 1; else if($time_a == $time_b) return 0; else return -1; } ################################################## function my_sort($a,$b){ global $sort; $del_a=preg_split("/;/",$a); $del_b=preg_split("/;/",$b); if($sort == "ip") return cmp($del_a[0],$del_b[0]); elseif($sort == "time") return cmp($del_a[1],$del_b[1]); elseif($sort == "porter") return cmp($del_a[2],$del_b[2]); elseif($sort == "browser") return cmp($del_a[3],$del_b[3]); elseif($sort == "sporter") return cmp($del_a[4],$del_b[4]); else return 0; } ############################################### ?> <body vlink=blue> Lenke til kommentar
Torbjørn Skrevet 11. februar 2004 Del Skrevet 11. februar 2004 hei Christian, kan se på det på torsdag Lenke til kommentar
christdi Skrevet 11. februar 2004 Forfatter Del Skrevet 11. februar 2004 Den er grei. Lenke til kommentar
???????? Skrevet 11. februar 2004 Del Skrevet 11. februar 2004 (endret) Prøv denne ################################################## function my_sort($a,$b){ $sort = $_GET['sort']; global $sort; $del_a=preg_split("/;/",$a); $del_b=preg_split("/;/",$b); NB: hvilken versjon av php kjører du? Har det fungert tidligere? Hva skjer når du klikker på linkene? Hvordan ser en linje ut i ip.txt filen? Endret 11. februar 2004 av ???????? 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å