Min online bruger list kode ser sådan ud:
<table cellpadding="0" cellspacing="0">
<tr style="color: #808080; border-top: 1px solid green; border-bottom: 1px dashed gray;"><td style="border-top: 1px solid green; border-bottom: 1px dashed gray;">IP</td><td style="border-top: 1px solid green; border-bottom: 1px dashed gray;">Lokation</td><td style="border-top: 1px solid green; border-bottom: 1px dashed gray;">Sidste hit</td></tr>
<?
include("register_onlineusers.php");
$db = mysql_connect("REMOVED", "REMOVED", "REMOVED");
mysql_select_db("REMOVED", $db);
$getusers = mysql_query("select IP, hostmask, pageurl, lastseen, pagetitle from onlineusers order by lastseen_stamp desc");
while($r = mysql_fetch_array($getusers)) {
$ip = $r["IP"];
$host = $r["hostmask"];
$side = $r["pageurl"];
$tid = $r["lastseen"];
$titel = $r["pagetitle"];
echo "<tr>";
echo "<td>$ip</td>";
echo "<td><a href=\\"$side\\">$side</a></td>";
echo "<td>$tid</td>";
echo "</tr>";
}
mysql_close();
?>
</table>
Og min register kode ser sådan ud:
<?
//thanks to Joseph Miller
//-div VARiable -----------
// Variabler der skal bruges
// Vi starter med at finde IP adressen for brugeren
// Denne kode er testet på flere sites, og i øvrigt taget fra PHP’s online dokumentation
$IP = $_SERVER['REMOTE_ADDR'];
$FIP = $_SERVER['HTTP_X_FORWARDED_FOR']; //Vi finder IPen hvis brugeren har brugt en ikke-anonym proxy server
//Vi checker så om det lykkedes. Gjorde det det erstatter vi den direkte fundne IP med den vi fandt igennem proxy'en
if (($FIP != "") && ($FIP != "unknown")) $IP = $FIP;
$IP = explode(",", $IP);
$IP = $IP[0];
// Vi finder brugerens hostmask, ud fra IP adressen
$hostmask = gethostbyaddr($IP);
// Vi bruger time() til at få et slags timestamp for lige nu
// Det er antallet af sekunder siden 1. januar 1970 (UNIX epoch)
$timenow = time();
// Vi sætter deletetime til 10 minutter før “lige nu”
$deletetime = $timenow-(600);
// Vi finder adressen på den nuværende side
$onlineurl = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
// Vi får lige et rigtigt menneskeligt tidspunkt, til at smide i databasen
// Til det bruger vi date, med en parameter der fortæller hvilket format det skal være i
$tidnu = date("H:i:s");
//------------------------------------------
mysql_connect("REMOVED","REMOVED","REMOVED");
@mysql_select_db("REMOVED") or die( "Unable to select database");
// Vi sletter brugere der ikke har været online de sidste $deletetime
// dvs. 10 minutter (600 sekunder / 60)
$query = "DELETE FROM onlineusers WHERE lastseen_stamp < '$deletetime'";
$result=mysql_query($query);
// Vi tjekker, ud fra IP adressen, om brugeren allerede er i tabellen
$query = "SELECT id FROM onlineusers WHERE IP LIKE '$IP'";
$tjek=mysql_query($query);
if(mysql_num_rows($tjek) == 0) {
// Brugeren var der ikke, vi indsætter “ham” lige
$query = "INSERT INTO onlineusers (IP, lastseen_stamp, pageurl, pagetitle, lastseen, hostmask) values
('$IP','$timenow', '$onlineurl','$title','$tidnu','$hostmask')";
$result2=mysql_query($query);
} else {
// Brugeren var der skam allerede, så vi opdaterer “hans” tid data
// samt sideadresse, titel
$query = "UPDATE onlineusers SET lastseen_stamp='$timenow', pageurl='$onlineurl',
pagetitle='$title', lastseen='$tidnu' WHERE IP LIKE '$IP'";
$resultc=mysql_query($query);
}
mysql_close();
?>
Indlæg senest redigeret d. 23.04.2006 12:51 af Bruger #8254