ja jeg er ved at prøve den artikel som kaspertsw har lavet
jeg har ændret den så den burde virker men det gør den ikke eller jo den der insætter ting i dben virker fint mån når jeg vil lave den status.php alså den der viser hvem der er online den kan jeg ikke få til at udskrive noget
Databsen
CREATE TABLE onlineusers (
id int(8) NOT NULL PRIMARY KEY auto_increment,
lastseen_stamp int(11) unsigned default NULL,
lastseen time default NULL,
IP varchar(30) default NULL,
hostmask varchar(255) NOT NULL default '',
url varchar(150) NOT NULL default '',
title varchar(100) default NULL
);
Insættelse af ip og det der:
<?
include("dbconnect.php");
?>
<?
// 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");
// Selve opdateringen/indsætningen
// Vi låser tabellen. Dette sørger for at vi ikke får inkonsistente data,
// samt giver hurtigere opdaterings forespørgsler
@mysql_query("LOCK TABLES onlineusers WRITE") or exit;
// Vi sletter brugere der ikke har været online de sidste $deletetime
// dvs. 10 minutter (600 sekunder / 60)
$deletequery = mysql_query("delete from onlineusers where lastseen_stamp < '$deletetime'");
// Vi tjekker, ud fra IP adressen, om brugeren allerede er i tabellen
$tjekquery = @mysql_query("select id from onlineusers where IP like '$IP'");
if(mysql_num_rows($tjekquery) == 0) {
// Brugeren var der ikke, vi indsætter “ham” lige
$query = mysql_query("insert into onlineusers (ip, lastseen_stamp, url, title, lastseen, hostmask) values
('$IP','$timenow', '$onlineurl','$title','$tidnu','$hostmask')");
} else {
// Brugeren var der skam allerede, så vi opdaterer “hans” tid data
// samt sideadresse, titel
$query = mysql_query("update onlineusers set lastseen_stamp='$timenow', url='$onlineurl',
title='$title', lastseen='$tidnu' WHERE IP like '$IP'");
}
// Vi låser tabellen op igen
@mysql_query("UNLOCK TABLES") or exit;
?>
også den der ikke virker status.php
<?
include("dbconnect.php");
?>
<?
$getcount = mysql_query(“select COUNT(id) from onlineusers”);
echo “Der er lige nu “.mysql_result($getcount, 0, 0).” personer online.<br><br>“;
$getusers = mysql_query("select IP, hostmask, url, tid, title from onlineusers order by last desc");
while($r = mysql_fetch_array($getusers)) {
$ip = $r["IP"];
$host = $r["hostmask"];
$side = $r["url"];
$tid = $r["lastseen"];
$titel = $r["title"];
echo "$ip ($host) var på <a href=\\"$side\\">$side</a> kl. $tid<br>";
}
?>
dbconnect.php
<?
$connection = mysql_connect("****", "***", "***");
mysql_select_db("***", $connection);
?>
nogen der kan se hvad der er galt ?=